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 Цикл
    ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик);
КонецЦикла;
ЛистЭксель = Неопределено;
Возврат ТЗ;
КонецФункции