Была поставлена задача - автоматизировать загрузку данных из Excel. Использование платформы 1С 8.2 было одним из условий. Перепробовал разные способы, из на Инфостарте много, от классического Excel.Application до внешних компонент. Но каждый способ показывал в процессе эксплуатации какие-то минусы. Вот и родилась идея воспользоваться возможностями платформы 8.3, чтобы преобразовать исходный файл *.xls(*.xlsx) в *.mxl, а потом обрабатывать его как "родной". В обработке к публикации пример преобразования от исходного файла, до открытия в 1С табличного документа. Последовательность действий работы следующая:
- По COM подключаемся из 8.2 к 8.3;
- Из 8.3 открываем файл Excel-ем;
- Каждый лист Excel сохраняем в отдельный временный файл;
- Читаем этот временный файл в ТабличныйДокумент 1С 8.3 и сохраняем в файл формата mxl;
- Читаем файл mxl в ТабличныйДокумент 1С 8.2 и показываем пользователю (или дальнейшая обработка);
Получилось очень даже прилично. И скорость нормальная, и "минусов", которые раньше мешали, пока нет. Не Бог весть что, но, может, кому пригодится.
Я сделал файл-пример, в котором 3 листа, на которых заполнено разное кол-во колонок, и они разной ширины. На картинках показано, как файл с примером будет выглядеть, если его просто открыть в 1С 8.3 и как тот же файл будет открыт обработкой, НО ... на 8.2 :)