Чтение 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");
КонецПопытки;
КонецЕсли;
КонецПроцедуры