4.2. Экспорт данных из PivotTable

PivotTableExtension – это расширение компонента PivotTable, которое предоставляет API для скачивания таблицы с агрегированными данными в формате XLS-файла.

Для добавления этой функциональности необходимо создать экземпляр расширения в контроллере экрана с помощью конструктора класса расширения (т.е., не с помощью UiComponents), например:

@Inject
private PivotTable pivotTable;

private PivotTableExtension extension;

@Subscribe
private void onInit(InitEvent event) {
    extension = new WebPivotTableExtension(pivotTable)
}
Tip

Расширение поддерживает только следующие типы рендереров: TABLE, TABLE_BAR_CHART, HEATMAP, COL_HEATMAP, ROW_HEATMAP, кроме того, оно не получает данных о цвете ячеек таблицы.

Чтобы скачать таблицу как файл XLS, нужно вызвать метод exportTableToXls(), например, по клику на кнопку:

extension.exportTableToXls();

По умолчанию, имя скачиваемого файла совпадает с локализованным именем сущности из контейнера данных PivotTable. Другое имя файла можно задать с помощью метода setFileName():

extension.setFileName("Orders of " + new Date());
Tip

Формат XLS имеет ограничение в 65536 строк в одном файле. Если PivotTable содержит более 65536 строк, при экспорте содержимое будет обрезано, и пользователь увидит соответствующее предупреждение.

Дополнительно, расширение PivotTableExtension предоставляет ещё два способа получения данных из PivotTable:

  • данные в формате JSON:

    extension.getPivotDataJSON();
  • сериализованный объект PivotData:

    extension.getPivotData();