局限性

导出带有生成列的表格

如果在 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;
}

导出分页表格

如果在 分页 表格中调用了导出操作,且用户选择导出 所有行,此时导出操作无法导出所有的行,而只是导出表格中包含的数据。