Код для 7 версии, при использовании в 8-ой — заменить E=СоздатьОбъект("Excel.Application");
на
E=Новый COMОбъект("Excel.Application");
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Функция глОткрытьФайл(Маска="") Экспорт Перем ИмяФайла,ИмяКаталога; Маска_="Файлы "+Маска+"|*."+Маска; Если СокрЛП(Маска)="" Тогда Маска_="Все файлы |*.*" КонецЕсли; Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяКаталога,"Открыть файл",Маска_)=1 Тогда Возврат ИмяКаталога+ИмяФайла; //полное имя открытого файла Иначе Возврат ""; КонецЕсли; КонецФункции Функция ReadExcel(ИмяФайла,Лист=1) Экспорт Попытка E=СоздатьОбъект("Excel.Application"); Исключение Предупреждение("Excel на компьютере не установлен!"); Возврат ПолучитьПустоеЗначение(); КонецПопытки; E.Workbooks.Open(Сокрлп(ИмяФайла)); Строк=E.Sheets(Лист).Cells.SpecialCells(11).Row; // строка последней ячейки Столбцов=E.Sheets(Лист).Cells.SpecialCells(11).Column; // столбец последней ячейки фТЗ=СоздатьОбъект("ТаблицаЗначений"); Для А=1 По Столбцов Цикл фТЗ.НоваяКолонка(); КонецЦикла; Для Стр=1 По Строк Цикл Состояние("Обработано "+Строка(Стр)+" строк из "+Строка(Строк)); фТЗ.НоваяСтрока(Стр); Для Столб=1 По Столбцов Цикл фТЗ.УстановитьЗначение(Стр,Столб,СокрЛП(E.Sheets(Лист).Cells(Стр,Столб).Value)); КонецЦикла; КонецЦикла; E.Workbooks.Close(); Возврат фТЗ; КонецФункции Процедура Сформировать() ИмяФайла=глОткрытьФайл("xls"); Если СокрЛП(ИмяФайла)="" Тогда Возврат; КонецЕсли; ТЗ.Загрузить(ReadExcel(ИмяФайла,1)); // ТЗ - таблица значений на форме // ну а дальше смотрим визуально, что с ней дальше делать КонецПроцедуры |
Подсказал Abadonna.