Шаблон загрузки из Excel штатными средствами платформы 8.3 (без com, ado, Excel Application) (обычные и управляемые формы)

Публикация № 959466

Обмен - Загрузка и выгрузка в Excel

Загрузка из Excel загрузка через табличный документ передача файлов с клиента на сервер программное отображение таблицы значений на форме

8
Шаблон для быстрой загрузки из Excel (форматы *.xls, *.xlsx) средствами платформы 8.3 с помощью табличного документа. Не нужно работать с MSExcel.Application, ADO. В платформе 8.3 у табличного документа развили метод Прочитать(), и сейчас можно загружать данные не только из файлов *.mxl, но и *.xls и *.xlsx. Подробнее в описании.

Шаблон для быстрой загрузки различных файлов Excel.

В новых версиях платформы, у табличного документа можно воспользоваться методом Прочитать(ИмяФайла, СпособЧтенияЗначений) для загрузки данных из файлов *.xls, *.xlsx, причем необязательно указывать формат загружаемого файла (второй необязательный параметр).

СпособЧтенияЗначений - Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.

Принцип работы обработки

1) Загрузка данных из файла Excel в новый табличный документ:

//загрузка из Excel в табличный документ
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.Прочитать(ИмяФайлаНаСервере);

2) Загружаем в построитель отчета как источник данных

ВсегоСтрок = ТабДокумент.ВысотаТаблицы;
ВсегоКолонок = ТабДокумент.ШиринаТаблицы;
	
Если ВсегоСтрок = 0 Тогда
	Возврат;
КонецЕсли;

Область = ТабДокумент.Область(1,1,ВсегоСтрок,ВсегоКолонок);
	
ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
	
ПостроительОтчета = Новый ПостроительОтчета; 
ПостроительОтчета.ИсточникДанных = ИсточникДанных;

3) Выгружаем результат построителя в ТЗ

ПостроительОтчета.Выполнить();
	
//в таблице значений - таблица загруженных данных
ТабЗначений = ПостроительОтчета.Результат.Выгрузить();

 

При этом имена колонок формируются по первой строке таблице (заголовки), преобразуя текст в ячейке по правилам именования (пример: "Дата рождения" преобразуется "ДатаРождения".

Важно: метод Прочитать() не работает на клиенте, поэтому при работе на управляемых формах в клиент-серверной базе, необходимо будет передать сам файл с клиента через временное хранилище на сервер.

В дальнейшем можно работать непосредственно с таблицей значений.

В Обработке - пример реализации шаблона, для обычных и управляемых форм (одна обработка с двумя формами), при этом:

1) диалог выбора файла Excel,

2) для управляемых форм - передача через временное хранилище файла с клиента на сервер,

3) автоматическое создание колонок, реквизитов и вывод на форму вновь загруженной таблицы значений.

Тестировалось на платформе 8.3.12.1567, на конфигурациях УТ 10.3 и ЗУП 3.1.

8

Скачать файлы

Наименование Файл Версия Размер
шаблон загрузки из Excel штатными средствами платформы 8.3 (без com, ado, Excel Application) (обычные и управляемые формы):
.epf 10,98Kb
07.12.18
13
.epf 10,98Kb 13 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. jack19 148 16.12.18 12:14 Сейчас в теме
{ВнешняяОбработка.ЗагрузкаИзФайлаExcel.Форма.ФормаОбычная.Форма(41)}: Ошибка при получении значения атрибута контекста (Результат)
ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
2. jack19 148 16.12.18 15:11 Сейчас в теме
(1) Прошу прощения, невнимательно прочитал о требованиях к файлу эксель, а именно, чтобы шапка с именами колонок была на первой строке. Всё работает, спасибо.
Оставьте свое сообщение