如何使用Apache POI对XSSFTable列启用排序/筛选?

问题描述 投票:0回答:1

我正在使用一个应用程序来获取数据库记录并根据该数据创建一个excel文档。

Excel文档生成得很好,所有数据都是可读的;从该论坛的上一个答案开始,该表也已适当生成(即使我滚动到表头行,该表头行仍然可见,因此该表肯定存在)。但是,我曾希望,一旦有了表格,我就能像在excel中“插入->表格”时那样对列进行排序和过滤,但是当我打开文档时没有此类选项。] >

我在XSSFTable或XSSFTableColumn类上看不到setFitlerable或setSortable或类似的东西。如何在表列上启用排序/过滤?

如果有用,请遵循表创建代码:

//Create table
CellReference topLeft = new CellReference(sheet.getRow(3).getCell(0));
CellReference bottomRight = new CellReference(sheet.getRow(nextRow-1).getCell(3));
AreaReference tableArea = workbook.getCreationHelper().createAreaReference(topLeft, bottomRight);
XSSFTable dataTable = sheet.createTable(tableArea);

dataTable.setName("TableData" + EXCEL_OBJECT_NUMBER);
dataTable.setDisplayName("TableData" + EXCEL_OBJECT_NUMBER);

XSSFTableColumn column = dataTable.getColumns().get(0);
column.setId(1);
column.setName("COLUMN1");

column = dataTable.getColumns().get(1);
column.setId(2);
column.setName("COLUMN2");

column = dataTable.getColumns().get(2);
column.setId(3);
column.setName("COLUMN3");

column = dataTable.getColumns().get(3);
column.setId(4);
column.setName("COLUMN4");

我正在开发一个应用程序,该应用程序将获取数据库记录并根据该数据创建一个excel文档。 excel文档可以很好地生成,并且所有数据都是可读的;截至此的先前答案...

java excel apache-poi xssf excel-tables
1个回答
0
投票

如果dataTableXSSFTable,并且tableArea是该AreaReferenceXSSFTable,那么下面的代码将自动过滤器设置为表头,因为Excel也这样做:

© www.soinside.com 2019 - 2024. All rights reserved.