Чтение Excel в Таблицу значений (через подключение к COM-Excel
&НаКлиенте Процедура ОткрытьФайл(Команда) ОчиститьСообщения(); СтандартнаяОбработка = Ложь; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.ПолноеИмяФайла = ""; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите файл'; uk = 'Виберіть файл'"); ДиалогОткрытияФайла.Фильтр = "Файлы MS Excel|*.xls;*.xlsx"; ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ПоказатьДиалогВыбораФайлаЗавершение", ЭтотОбъект, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла))); КонецПроцедуры
&НаКлиенте Процедура ПоказатьДиалогВыбораФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт Если (ВыбранныеФайлы <> Неопределено) Тогда ИмяФайла = ВыбранныеФайлы[0]; Иначе Возврат; КонецЕсли; Excel = ПодключитьсяКЭкселю(); Если Excel = Неопределено Тогда Возврат; КонецЕсли; Книга = Excel.WorkBooks.Open(ИмяФайла); Лист = Книга.WorkSheets(1); ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; ТабЗначений.Очистить(); для Строка = excel_СтрокаНачала по ВсегоСтрок цикл новстрока = ТабЗначений.Добавить(); новстрока.НомерПП = Формат(Лист.Cells(Строка, 1).Value, "ЧГ="); КонецЦикла; ОтключитьсяОтЭкселя(Excel); КонецПроцедуры
&НаКлиенте Функция ПодключитьсяКЭкселю() Excel = Неопределено; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.DisplayAlerts = 0; Excel.EnableEvents = 0; Excel.ScreenUpdating = 0; Excel.Visible = 0; Исключение Сообщить("Ошибка при открытии файла с помощью Excel! Возможно не устанволен Эксель на этом ПК"); Сообщить(ОписаниеОшибки()); ОтключитьсяОтЭкселя(Excel); Возврат Excel; КонецФункции
&НаКлиенте Процедура ОтключитьсяОтЭкселя(Excel) Если Excel <> Неопределено Тогда Попытка Excel.DisplayAlerts = 0; Excel.Workbooks.Close(); Excel.DisplayAlerts = 1; Excel.Application.Quit(); Excel = Неопределено; Исключение Доработки_Сервер.ОтправитьСообщениеПользователю("Ошибка отключения от EXcel"); КонецПопытки; КонецЕсли; КонецПроцедуры