Пакетное чтение данных из Excel

Универсальная обработка для загрузки больших объемов информации из Excel.

Если Вам когда-либо приходилось сталкиваться с обработкой данных Excel, то в большинстве случаев предлагается считывать данные построчно. На различных сайтах представлено огромная масса примеров с кодом 1С. Но, как только объем загружаемой информации увеличивается, то время, затраченное на чтение данных, становится колоссальным. У нас в организации постоянно приходилось обрабатывать файлы с огромным количеством строк (от 10000), поэтому пришлось отказаться от построчной обработки и считывать массив данных целиком.

Данная обработка считывает данные из любого файла Excel и помещает в таблицу значений 1С с которой уже можно проводить любые действия, используя программный код 1С.

// Ниже представлен пример вызова данной обработки, внедренной в конфигурацию

// Если данная обработка будет запускаться как внешняя нужно дет добавит строку коду

// ВнешниеОбработки.Подключить(...)

мОбработка = Обработки.ЗагрузкаТаблицыИзExcel.Создать() ;
мФорма = мОбработка.ПолучитьФорму() ;
Результат = Форма.ОткрытьМодально();
Если Результат = Неопределено Тогда
Возврат ;
КонецЕсли ;

// Возвращаемый результат  - таблица значений с колонками К1, К2 ... Кn

Обработка может вызываться в любой конфигурации 1С в толстом клиенте.

Тестировалась в конфигурациях 1С УПП 1.3 (1.3.92.1), ЗиУП 2.5 (2.5.124.1).

3 Comments

  1. dusha0020

    Насколько я помню свойство Value диапазона на листе спокойно считывается в массив. Стандартным COM объектом. Зачем Вам была нужна построчная обработка? И зачем теперь нужен костыль в виде Office System Driver?

    Reply
  2. kotov2000

    1. Почему построчная? Я как раз подчеркиваю, что именно не построчная, а считывание одной командой —

    ТекстЗапроса =

    «SELECT

    | Лист.*

    |FROM

    | [«+сокрЛП(ЛистXLS)+»$] as Лист»;

    2. DCC Driver нужен, чтобы можно было обратиться к Excel по COM-соединению. Без него, увы, никак. Но, если, на рабочем месте пользователя уже установлен MSO, то и драйвер устанавливается в момент установки офиса.

    Но возникают случаи, когда MSO не установлен, а обращаться к XLS-файлам нужно, например, в терминалах.

    3. Если так хорошо Вы умеете считывать данные с листа в массив — приведите пример кода.

    Reply
  3. kotov2000

    (3) Хороший результат с интересным кодом. Ранее я такой не встречал.

    Учту на будущее. Спасибо.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *