Apache POI:用于识别Excel工作表中的表并读取它们的API

use*_*993 6 java excel apache-poi

是否有任何方法可以返回工作表中存在的表列表?我的要求是从工作表上的多个表中获取数据.

Alk*_*ris 6

假设您正在使用Excel XSSFfor .xlsxexcel文件.如果表是在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());
    }
}
Run Code Online (Sandbox Code Playgroud)

如果table你的意思是什么,有一个边界,那么你必须创建一个不平凡的算法,每读取片的所有单元格,并检查边界(例如leftBorderColor,rightBorderColor,topBorderColor,bottomBorderColor),并通过定义什么是由一个table检查,如果你发现它.