Универсальная обработка для загрузки файлов Excel и CSV. Читает все страницы файла Excel. Данные из файла CSV читаются как один лист. В файле Excel на каждом листе первая строка должна содержать названия колонок таблицы. Аналогично в файле CSV первая строка должна содержать названия колонок.
Параметры:
ПутьКФайлу - Строка - Полный путь к файлу Excel или CSV (.xls, .xlsx, .csv)
Возвращаемое значение:
СписокЗначений - Коллекция листов, где каждый элемент содержит:
- ИмяЛиста - Строка - Название листа
- Данные - ТаблицаЗначений - Данные листа (первая строка - заголовки)
Алгоритм работы:
Если выбран файл Excel:
1. Создает COM-объект Excel (в фоновом режиме)
2. Открывает указанную книгу
3. Для каждого листа:
- Читает данные через ПрочитатьЛистExcel()
- Преобразует в ТаблицуЗначений через ОбработатьДанныеExcel()
4. Закрывает книгу без сохранения
5. Возвращает структурированные данные
Если выбран файл CSV:
1. Открывает указанный файл
2. Читает данные из CSV файла и преобразует в ТаблицуЗначений
3. Закрывает указанный файл
4. Возвращает структурированные данные, аналогично файлам Excel, но только в виде одного листа
Пример использования:
Данные = ПрочитатьФайлExcel("C:\Отчеты\Налоги.xlsx");
Для Каждого Лист Из Данные Цикл
Сообщить("Лист: " + Лист.Значение.ИмяЛиста);
тзДанные = Лист.Значение.Данные; // ТаблицаЗначений
КонецЦикла;
Особенности:
- Работает через COM-объект для Excel (требуется установленный MS Excel)
- Автоматически закрывает Excel даже в случае ошибки
- Для CSV файлов установленный MS Excel не требуется, COM-объекты не используются
- Не сохраняет изменения в исходном файле
- Преобразует данные в ТаблицуЗначений
Ограничения:
- Для больших файлов (>50MB) возможны проблемы с производительностью
- Требуются права на создание COM-объектов при чтении Excel файлов
- Не поддерживает паролированные файлы
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.175.24
- Управление торговлей, редакция 11, релизы 11.5.21.125
- 1С:Комплексная автоматизация 2, релизы 2.5.21.125