Files
Профи-Софт 12665eb8e7 v3.0.0.77
2026-07-16 10:36:35 +00:00

69 lines
3.5 KiB
Plaintext

// Клиентский модуль для 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) = ВРег(ИмяЛиста) Тогда Возврат Лист; КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции