使用應使用XSSFSheet
並創建CTTable
。工作表可能包含很多表格。
這是用於將表格添加到工作表的代碼。請確保單元格已創建並存在。 AreaReference的
private void createExcelTable(XSSFSheet sheet, AreaReference reference, int tableId,
String name) {
XSSFTable table = sheet.createTable();
table.setDisplayName(name);
CTTable cttable = table.getCTTable();
// Style configurations
// CTTableStyleInfo is available in ooxml-schemas-1.1.jar.
// Replace with it your poi-ooxml.
CTTableStyleInfo style = cttable.addNewTableStyleInfo();
style.setName("TableStyleLight1");
style.setShowColumnStripes(false);
style.setShowRowStripes(true);
// Set which area the table should be placed in
cttable.setRef(reference.formatAsString());
// id starts from 1
cttable.setId(tableId);
cttable.setName(name);
cttable.setDisplayName(name);
// first row is used for header with filter
CTAutoFilter autoFilter = cttable.addNewAutoFilter();
autoFilter.setRef(reference.formatAsString());
CTTableColumns columns = cttable.addNewTableColumns();
// sets count of columns for current table
short firstColumn = reference.getFirstCell().getCol();
short lastColumn = reference.getLastCell().getCol();
columns.setCount(lastColumn - firstColumn + 1);
for (int i = firstColumn; i <= lastColumn; i++) {
// create columns
CTTableColumn column = columns.addNewTableColumn();
column.setName("Column" + i);
// id starts from 1
column.setId(i + 1);
}
}
實施例:
new AreaReference(new CellReference(0, 0), new CellReference(4, 5));
Excel工作表只能有每片1個濾波器範圍。該過濾器範圍可以過濾多個項目。 –
但從Microsoft Excel的GUI我可以在多行創建過濾器。這是否像apache POI允許每個工作表只創建一個過濾器? –
您是否在嘗試過濾多個條件的數據集?或者在工作表內的不同數據集上放置多個過濾器? –