导出操作

ExportAction 是一个基本 列操作,通过特定的导出器导出表格的内容。此操作需要一个 DataGridExporter 实例。

此操作可用于 dataGrid 数据网格treeDataGrid 树形数据网格 组件。

ExportAction 也提供从 DataGrid 的列获取导出值的方法:

  • addColumnValueProvider() 添加一个方法,用于从列中获取导出值。

  • removeColumnValueProvider() 通过列 id 删除一个获取列值的方法。

ExportAction 有三种导出模式:所有行、当前页以及选中行。

export action
  • 导出 All rows(所有行) 时,会按照视图中初始的数据加载器语句和过滤器的条件加载所有数据。过程中使用批量加载。每批次加载的数据量可以通过 jmix.gridexport.exportAllBatchSize 应用程序属性配置。

  • 导出 Current page(当前页) 时,仅导出表格当前页包含的数据。

  • 导出 Selected rows(选中行) 时,仅导出表格选中的数据。

特定操作的导出选项可以通过 setAvailableExportModes() 方法或 XML 中的 availableExportModes 属性设置。默认的可用选项是通过 jmix.gridexport.default-export-modes 应用程序属性定义。

可以在 消息包 添加 exportConfirmationDialog.headerexportConfirmationDialog.message 消息覆盖默认的弹窗标题和文本。

ExcelExportAction

ExcelExportAction 操作继承了 ExportAction 用于以 XLSX 格式导出表格内容。

此操作由 io.jmix.gridexportflowui.action.ExcelExportAction 类实现,在 XML 中需要使用 type="grdexp_excelExport" 操作属性在列表组件定义。另外,该操作支持使用 action 元素的属性配置通用的操作参数。参阅 声明式定义操作

示例:

<actions>
    <action id="excelExport" type="grdexp_excelExport"/>
</actions>

或者,可以在界面控制器注入该操作,然后用 setter 配置:

@ViewComponent("customersDataGrid.excelExport")
private ExcelExportAction customersDataGridExcelExport;

@Subscribe
public void onInit(final InitEvent event) {
    customersDataGridExcelExport.setText("Export data grid to Excel");
}

可以覆盖本地化的数据格式字符串。Excel 导出的默认格式字符串定义如下:

excelExporter.label=Excel
excelExporter.true=Yes
excelExporter.false=No
excelExporter.empty=[Empty]
excelExporter.bytes=<bytes>
excelExporter.timeFormat=h:mm
excelExporter.dateFormat=m/d/yy
excelExporter.dateTimeFormat=m/d/yy h:mm
excelExporter.integerFormat=#,##0
excelExporter.doubleFormat=#,##0.00##############

JsonExportAction

JsonExportAction 操作继承了 ExportAction 用于以 JSON 格式导出表格内容。

此操作由 io.jmix.gridexportflowui.action.JsonExportAction 类实现,在 XML 中需要使用 type="grdexp_jsonExport" 操作属性在列表组件定义。另外,该操作支持使用 action 元素的属性配置通用的操作参数。参阅 声明式定义操作

示例:

<actions>
    <action id="jsonExport" type="grdexp_jsonExport"/>
</actions>

或者,可以在界面控制器注入该操作,然后用 setter 配置:

@ViewComponent("customersDataGrid.jsonExport")
private JsonExportAction customersDataGridJsonExport;

@Subscribe
public void onInit(final InitEvent event) {
    customersDataGridJsonExport.setText("Export data grid to JSON");
}

局限性

  • 导出 TreeDataGrid 时,包含树层级属性的列不会有缩进。

  • 不支持导出复合主键的实体。