Загрузка данных из Excel в 1С — примеры кода

Три основных способа чтения Excel файлов в 1С: через COM-объект, Табличный документ и табличный документ 1С (mxl).

Способ 1. COM-объект (Excel.Application)

Классический способ, требует установленного MS Excel на сервере или клиенте (где выполняется код).

Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.DisplayAlerts = Ложь;
Исключение
    Сообщить("Не удалось инициализировать Excel");
    Возврат;
КонецПопытки;

Книга = Excel.Workbooks.Open(ПутьКФайлу);
Лист = Книга.Worksheets(1);

ВсегоСтрок = Лист.Cells.SpecialCells(11).Row;

Для Счетчик = 2 По ВсегоСтрок Цикл
    Артикул = Лист.Cells(Счетчик, 1).Value;
    Наименование = Лист.Cells(Счетчик, 2).Value;
    Цена = Лист.Cells(Счетчик, 3).Value;
    
    // Обработка данных...
КонецЦикла;

Книга.Close();
Excel.Quit();

Способ 2. Табличный документ (без установленного Excel)

Если файл имеет простой формат, его можно прочитать стандартными средствами платформы.

ТабДок = Новый ТабличныйДокумент;
Попытка
    ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Исключение
    Сообщить("Ошибка чтения файла: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

ВысотаТаблицы = ТабДок.ВысотаТаблицы;

Для НомСтр = 2 По ВысотаТаблицы Цикл
    Артикул = СокрЛП(ТабДок.Область(НомСтр, 1).Текст);
    Наименование = СокрЛП(ТабДок.Область(НомСтр, 2).Текст);
    
    // Поиск и создание номенклатуры...
КонецЦикла;

Какой способ выбрать?

  • COM-объект: Надежный, читает любые файлы (xls, xlsx), но требует лицензии MS Office и работает только под Windows. Медленный.
  • Табличный документ: Быстрый, не требует Excel, кроссплатформенный (работает на Linux сервере), но может некорректно читать сложное форматирование.
  • Native API (внешние компоненты): Используются для сверхбыстрого чтения больших файлов (например, через библиотеку libxl), но требуют разработки на C++.

Нужна сложная загрузка из Excel?

Напишу обработку загрузки любой сложности: прайсы поставщиков, сложные бланки заказов, выгрузки из других систем.

Заказать обработку →