v3.0.0.75
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
// Клиентский модуль для COM-взаимодействия с Excel
|
||||
// Содержит только COM-вызовы
|
||||
|
||||
&НаКлиенте
|
||||
Функция ОткрытьФайлExcel(ПутьКФайлу)
|
||||
Попытка
|
||||
Excel = Новый COMОбъект("Excel.Application");
|
||||
Excel.Visible = Ложь;
|
||||
Excel.DisplayAlerts = Ложь;
|
||||
Книга = Excel.Workbooks.Open(ПутьКФайлу);
|
||||
Возврат Новый Структура("Книга, Excel", Книга, Excel);
|
||||
Исключение
|
||||
Сообщить("Не удалось открыть Excel: " + ОписаниеОшибки());
|
||||
Возврат Неопределено;
|
||||
КонецПопытки;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗакрытьExcel(КонтекстExcel, ВременныйФайл)
|
||||
Если КонтекстExcel = Неопределено Тогда Возврат; КонецЕсли;
|
||||
Попытка
|
||||
КонтекстExcel.Книга.Close(Ложь);
|
||||
КонтекстExcel.Excel.Quit();
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
Если ЗначениеЗаполнено(ВременныйФайл) Тогда УдалитьФайлы(ВременныйФайл); КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПрочитатьЯчейкуЧисло(Лист, Строка, Колонка, КонтекстОшибки)
|
||||
Попытка
|
||||
Значение = Лист.Cells(Строка, Колонка).Value;
|
||||
Если Значение = Неопределено ИЛИ Значение = "" Тогда Возврат 0; КонецЕсли;
|
||||
Возврат Число(Значение);
|
||||
Исключение
|
||||
Сообщить("Ошибка чтения числа: " + КонтекстОшибки + " | строка " + Строка + " колонка " + Колонка);
|
||||
Возврат 0;
|
||||
КонецПопытки;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПрочитатьЯчейкуСтрока(Лист, Строка, Колонка)
|
||||
Попытка
|
||||
Значение = Лист.Cells(Строка, Колонка).Value;
|
||||
Если Значение = Неопределено Тогда Возврат ""; КонецЕсли;
|
||||
Возврат СокрЛП("" + Значение);
|
||||
Исключение
|
||||
Возврат "";
|
||||
КонецПопытки;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ИзвлечьИмяЛистаИзФормулы(Формула)
|
||||
Если Формула = Неопределено Тогда Возврат ""; КонецЕсли;
|
||||
Текст = СокрЛП("" + Формула);
|
||||
Если Не СтрНачинаетсяС(Текст, "='") Тогда Возврат ""; КонецЕсли;
|
||||
Поз = СтрНайти(Текст, "'!");
|
||||
Если Поз = 0 Тогда Возврат ""; КонецЕсли;
|
||||
Возврат Сред(Текст, 3, Поз - 3);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НайтиЛист(Книга, ИмяЛиста)
|
||||
Для Каждого Лист Из Книга.Sheets Цикл
|
||||
Если ВРег(Лист.Name) = ВРег(ИмяЛиста) Тогда Возврат Лист; КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
||||
Reference in New Issue
Block a user