【问题标题】:reading values from excel file using Apache POI使用 Apache POI 从 excel 文件中读取值
【发布时间】:2017-07-27 16:32:31
【问题描述】:

大家好,

我想读取图像中显示的文档的值。
目前,我正在使用 switch-case 语句来保存数据,但很难区分 1. Contact2. Contact

case "Address Line"
     contact1.setAddressLine(cellIterator.next().getStringCellValue());
case "City"
     contact1.setCity(cellIterator.next().getStringCellValue());
case "County"
     contact1.setCounty(cellIterator.next().getStringCellValue());
...and so on for Address
case "Number of Students"
     contact1.setAddressLine(cellIterator.next().getStringCellValue());
case "Number Of Professors"
     contact1.setAddressLine(cellIterator.next().getStringCellValue());

这适用于UniversityProfessors,但不适用于Contact

谁能指导我如何做到这一点?

(子问题:是否可以读取所有不固定到特定结构的值并将其存储?)

【问题讨论】:

    标签: java excel apache-poi java-io


    【解决方案1】:

    如果 excel 文件的结构是静态的,您可以使用它们的坐标而不是使用 cellIterator 来引用这些值。

    单元格 A1 可以引用为

    Sheet sheet = ...
    Row row = sheet.getRow(0);
    Cell cell = row.getCell(0);
    
    // Do what you need
    

    例如,如果联系人一的地址在 B5 上,而联系人二的地址在 E5 上

    Sheet sheet = ...
    Row row = sheet.getRow(4);           // Reference to row 5
    Cell cellContact1 = row.getCell(1);  // Reference to cell B5
    
    Cell cellContact2 = row.getCell(4);  // Reference to cell E5
    

    注意:

    在现有 Excel 中使用 getRowgetCell 读取值

    在新的 Excel 中使用 createRowcreateCell 来创建值

    【讨论】: