导出透视表数据

PivotTableExtensionPivotTable 组件的扩展,提供带有聚合数据的表格下载 API,下载格式为 XLS。

需要使用构造函数在界面控制器中创建此扩展的实例。示例:

@Autowired
private PivotTable pivotTable;

@Autowired
protected ObjectProvider<PivotExcelExporter> excelExporterObjectProvider;

private PivotTableExtension extension;

@Subscribe
protected void onInit(InitEvent event) {
    extension = new PivotTableExtensionImpl(pivotTable, excelExporterObjectProvider.getObject());
}
该扩展仅适用于以下 渲染器 类型:TABLETABLE_BAR_CHARTHEATMAPCOL_HEATMAPROW_HEATMAP,并且不能获取单元格的颜色。

可以使用 exportTableToXls() 方法下载 XLS 格式的表格数据,例如,在点击按钮时:

private PivotTableExtension extension;

@Subscribe("exportBtn")
protected void onExportBtnClick(Button.ClickEvent event) {
    extension.exportTableToXls();
}

默认情况下,下载文件名与 PivotTable 数据容器中实体的本地化名称一致。也可以使用 setFileName() 方法定义文件名:

extension.setFileName("Tips");
XLS 格式的文件最多只能存 65536 行数据。如果 PivotTable 包含多于 65536 行,那么表格内容只能导出到限制的最后一行,系统也会弹出相应的警告信息。

另外,PivotTableExtension 提供了另外两个获取 PivotTable 数据的方法:

  • extension.getPivotDataJSON() - 获取 JSON 格式的数据。

  • extension.getPivotData() - 获取序列化的 PivotData 对象。