Table Exporters

The TableExporter interface is designed to download the Table or DataGrid content.

The TableExporter interface has two standard implementations: ExcelExporter class and JsonExporter class.

An instance of TableExporter is passed to the setTableExporter() method of ExportAction.

Custom Table Exporter

You can define a custom implementation of the TableExporter interface for exporting your format.

An example of declaring a custom table exporter:

@Component("ui_CustomExporter")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class CustomExporter implements TableExporter {
    @Override
    public void exportTable(Downloader downloader, Table<Object> table, ExportMode exportMode) {
        //your custom logic
    }

    @Override
    public void exportDataGrid(Downloader downloader, DataGrid<Object> dataGrid, ExportMode exportMode) {
        //your custom logic
    }

    @Override
    public String getCaption() {
        return "custom";
    }

    @Override
    public void addColumnValueProvider(String columnId, Function<ColumnValueContext, Object> columnValueProvider) {
        //your custom logic
    }

    @Override
    public void removeColumnValueProvider(String columnId) {
        //your custom logic
    }

    @Nullable
    @Override
    public Function<ColumnValueContext, Object> getColumnValueProvider(String columnId) {
        //your custom logic
        return null;
    }
}

ExcelExporter

Use the ExcelExporter class to export the Table or DataGrid content into Excel format.

ExcelExporter is used in the standard ExcelExportAction action.

JsonExporter

Use the JsonExporter class to export the Table or DataGrid content into JSON format.

JsonExporter is used in the standard JsonExportAction action.