Использование экспорта и импорта#
Одной из самых распространенных задач, из встречающихся при работе над различными проектами, является задача по импортированию данных в систему и экспортированию данных в файл из неё. Для решения подобных задач в системе реализованы классы ImportFile и ExcelExport. С примером использования этих классов можно ознакомиться в демонстрационном проекте: http://gogs.lexema.ru/core/lexema-demo/src/master/source/beginner/imports/importsForm.js
Импорт данных#
Класс ImportFile предоставляет два метода для импортирования файлов: в формате редакторов электронных таблиц Excel и OpenDocument и текстовом формате в различных кодировках.
В формате Excel#
Первый метод - fromExcel.
В качестве первого параметра он принимает массив объектов со следующей структурой:
sheetName- наименование листа в файле;columns- объект с полями, описывающими импортируемые столбцы;<буквенный индекс столбца>- значением поля является строка, которая будет идентифицировать поля импортированных строк;
startDataRow- номер строки, с которой начинается требуемый набор данных.
В качестве второго параметра он принимает объект со свойством:
multiple- булевая переменная отвечающая за возможность загрузки нескольких файлов одновременно;
Пример метода формы, демонстрирующий импорт данных в контрол Grid:
В примере происходит обращение к листу с идентификатором Sheet1 и двум колонкам с индексами A и B. Для этих колонок определяются имена, которые будут присвоены им в результатах импорта. Не рекомендуется передавать в массив параметров метода fromExcel объекты, описывающие один и тот же лист, поскольку в таком случае нет возможности гарантировать корректность возвращаемых результатов.
Примечание
Также важным требованием является строгое соответствие структуры импортируемого файла структуре, описанной в реализованном функционале.
Результаты импорта в данном конкретном примере представляют собой следующий объект:
В объекте с результатами каждое поле соответствует использованным листам и содержит массив с найденными строками.
Пример метода формы, демонстрирующий импорт данных с переменной multiple:
Результаты импорта в данном конкретном примере с переменной multiple:
В объекте с результатами каждое поле соответствует использованным листам и содержит массив с найденными строками.
В текстовом формате#
Метод импорта текстовых данных fromText обладает более простым функционалом. В качестве параметров он принимает строку, которая задаёт ожидаемую кодировку файла. В результате метод возвращает содержимое выбранного пользователем файла.
Пример
Экспорт данных#
Как видно из наименования класса ExcelExport, он предназначен для экспорта данных только в формате электронных таблиц Excel.
Для экспортирования данных в классе реализован метод saveFile.
Также экспорт данных является частью функционала контрола Grid
Пример
Метод принимает объект с аргументами, которые задают:
data- массив данных, который будет использоваться для формирования экспортируемой таблицы;options- объект, описывающий экспортируемые данные (полный список опций - в статье);fileName- строка с наименованием, с которым должен быть сохранён полученный файл. Расширение файла также необходимо указывать. В примере продемонстрирована настройка экспорта данных, задаваемых локально в свойствеbindingкласса формы. Контрол Grid exportSource на форме привязан к этим данным. Поэтому в качестве значения параметраdataметодаsaveFileиспользуется его источник данных.
В объекте опций задаётся заголовок таблицы, группировка по строкам данных, а также свойства каждого экспортируемого столбца. В целом параметр опций позволяет достаточно гибко определить различные свойства конечного файла. Например, с помощью объекта опций можно определять правила преобразования экспортируемых данных по колонкам, добавлять агрегаты, определять группы колонок и их иерархию, внешний вид ячеек строк и групп колонок.
Содержимое файла, полученного в результате экспорта:
