Загрузка данных из 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?
Напишу обработку загрузки любой сложности: прайсы поставщиков, сложные бланки заказов, выгрузки из других систем.
Заказать обработку →