是否有任何方法可以返回工作表中存在的表格列表? 我的要求是从工作表上存在的多个表中获取数据。
最佳答案
假设您正在为 .xlsx
excel 文件使用 XSSF
API。
如果表格是由 Insert->Table
创建的,那么您可以使用以下命令读取它们:
XSSFWorkbook workbook = new XSSFWorkbook(new File("test.xlsx"));
int numberOfSheets = workbook.getNumberOfSheets();
for(int sheetIdx = 0; sheetIdx < numberOfSheets; sheetIdx++) {
XSSFSheet sheet = workbook.getSheetAt(sheetIdx);
List<XSSFTable> tables = sheet.getTables();
for(XSSFTable t : tables) {
System.out.println(t.getDisplayName());
System.out.println(t.getName());
System.out.println(t.getNumerOfMappedColumns());
}
}
如果 table
是指任何有边框的东西,那么您必须创建一个非常重要的算法来读取每张工作表的所有单元格并检查边界(例如 leftBorderColor
, rightBorderColor
, topBorderColor
, bottomBorderColor
) 并通过定义 table
的组成来检查你是否找到它。
关于java - Apache POI : API to identify tables in the excel sheet and read them,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744440/