导出操作
ExportAction
是一个基本 列操作,通过特定的导出器导出表格的内容。此操作需要一个 DataGridExporter 实例。
此操作可用于 dataGrid 数据网格 和 treeDataGrid 树形数据网格 组件。
ExportAction
也提供从 DataGrid
的列获取导出值的方法:
-
addColumnValueProvider()
添加一个方法,用于从列中获取导出值。 -
removeColumnValueProvider()
通过列id
删除一个获取列值的方法。
ExportAction
有三种导出模式:所有行、当前页以及选中行。
-
导出 All rows(所有行) 时,会按照视图中初始的数据加载器语句和过滤器的条件加载所有数据。过程中使用批量加载。每批次加载的数据量可以通过 jmix.gridexport.exportAllBatchSize 应用程序属性配置。
-
导出 Current page(当前页) 时,仅导出表格当前页包含的数据。
-
导出 Selected rows(选中行) 时,仅导出表格选中的数据。
特定操作的导出选项可以通过 setAvailableExportModes()
方法或 XML 中的 availableExportModes
属性设置。默认的可用选项是通过 jmix.gridexport.default-export-modes 应用程序属性定义。
可以在 消息包 添加 exportConfirmationDialog.header
和 exportConfirmationDialog.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");
}