java - Apache POI : API to identify tables in the excel sheet and read them

标签 java excel apache-poi

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

最佳答案

假设您正在为 .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/

相关文章:

java - 从 Android 中的可检查 ListView 中删除所有选定的项目

excel - Excel中有没有类似于Ruby的Split方法的函数?

mySQL,二维转一维

java - 如何使用 POI 删除表格后的第一个字符

java - 如何使用 Apache POI 通过 Google App Engine 读取电子表格?

java - 将数据从 Excel 文件存储到 Java Collection

java - Java Pixelbot(并将鼠标移至此处)

java - 是否可以知道 Java 中 .ser 文件内的属性?

java - 如何在没有kafka服务器的情况下运行spring boot

vba - vba excel中TextBox中的每个字符都有不同的颜色