局限性

  • 当导出 TreeTableTreeDataGrid 时,不会在层级属性(即表示树结构的属性)添加缩进。

  • 当导出 GroupTable 时,不会在 Excel 文件添加分组。

  • 不支持导出具有组合主键的实体。

导出带有生成列的表格

如果在 TableGroupTableTreeTable 中使用了自定义的 生成列,则默认不会导出这些列的数据。

可以使用 ExportAction 类的 addColumnValueProvider() 方法定义获取这些列值的方法。

下面示例中,isEmail 列使用了 columnGenerator。如需使用 ExcelExportAction 导出列值,添加一个方法从该列获取值:

@Named("customersTable.excel")
protected ExcelExportAction customersTableExcel;

@Subscribe
protected void onInit(InitEvent event) {
    customersTableExcel.addColumnValueProvider("isEmail", context -> {
        Customer customer = context.getEntity();
        return customer.getEmail() != null;
    });
}

@Install(to = "customersTable.isEmail", subject = "columnGenerator")
protected Component customersTableIsEmailColumnGenerator(Customer customer) {
    CheckBox isEmail = uiComponents.create(CheckBox.class);
    isEmail.setValue(customer.getEmail() != null);
    return isEmail;
}