====== Excel: Чтение данных ======
В данной статье рассмотрим чтение из файлов Excel
==== Чтение построчно ====
ExcelApp=Новый ComОбъект("Excel.Application");
Книга=ExcelApp.Workbooks.Open("C:\1.XLS");
ВсегоСтрок = Книга.Cells.CurrentRegion.Rows.Count;
Лист=Книга.Sheets(1);
Для i=1 по ПоследняяСтрока Цикл
Контрагент =Лист.Cells(i,1).Value;
НашДолг =Лист.Cells(i,7).Value;
ДолгКлиента =Лист.Cells(i,8).Value;
//...
//...
КонецЦикла;
ExcelApp.Workbooks.Close();
ExcelApp.Quit();
==== Чтение массивом ====
Для более быстрого чтения можно использовать следующий способ
//(взято с http://infostart.ru/public/20090/)//
Функция ПрочитатьЛистExcel(ТЗ = Неопределено, ЛистЭксель = Неопределено, НомерПервойСтроки = 1, НомерПервойКолонки = 1, ВсегоСтрок = 0, ВсегоКолонок = 0) Экспорт
Если ЛистЭксель = Неопределено Тогда
ЛистЭксель = ПолучитьCOMОбъект(,"Excel.Application");
КонецЕсли;
Если ВсегоСтрок = 0 Тогда
ВсегоСтрок = ЛистЭксель.Cells.SpecialCells(11).Row;
КонецЕсли;
Если ВсегоКолонок = 0 Тогда
ВсегоКолонок = ЛистЭксель.Cells.SpecialCells(11).Column;
КонецЕсли;
Если ТЗ = Неопределено Тогда
ТЗ = Новый ТаблицаЗначений;
Для Счетчик = 1 По ВсегоКолонок Цикл
ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка"));
КонецЦикла;
КонецЕсли;
Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл
НоваяСтрока = ТЗ.Добавить();
КонецЦикла;
Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок));
Данные = Область.Value.Выгрузить();
Для Счетчик = 0 По ВсегоКолонок-1 Цикл
ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик);
КонецЦикла;
ЛистЭксель = Неопределено;
Возврат ТЗ;
КонецФункции
{{tag>Excel}}