读取Excel文件2010的Apache POI忽略空白单元格(Read excel file 20

2019-07-02 12:16发布

我具有问题,同时Java应用程序读取Excel文件.XLSX extention,该应用程序是正常工作,但在工作簿有许多张,1,2片材正确地读出,但是,当读取3片,还有不阅读所有的细胞而我打开,从Excel文件检查,细胞是空值存在,但是当Apache POI读它的细胞只是忽略了空单元格。 是什么原因? 更新

 FileInputStream file = new FileInputStream(file_location);
  //this.workbook = new HSSFWorkbook(file);
  this.workbook = new XSSFWorkbook(file);
XSSFSheet mySheet = workbook.getSheetAt(index);
       Iterator rowIter = mySheet.rowIterator();
        while(rowIter.hasNext()){
          XSSFRow myRow = (XSSFRow) rowIter.next();
          Iterator cellIter = myRow.cellIterator();
          ArrayList colStoreArray=new ArrayList();



          while(cellIter.hasNext()){
              XSSFCell myCell = (XSSFCell) cellIter.next();
              colStoreArray.add(myCell);
                                   }
          rowArrayHolder.add(colStoreArray);

        } }

阅读上面的excel文件,当我在一个20个细胞有检查Excel文件,但在它的某些行只有14行读取。 我使用的ArrayList,似乎这里应与并发访问ArrayList的问题。 有什么可以引起?

Answer 1:

迭代器只遍历文件中定义的细胞。 如果细胞从未在Excel中使用,它可能不会出现在文件(Excel是并不总是一致的......),所以POI不会看到它

如果你想确保你打的每一个细胞,你应该通过索引查找代替,并且无论是检查空细胞(表示从来没有在文件中存在的细胞),或设置MissingCellPolicy来控制你想怎么空和空细胞被处理



文章来源: Read excel file 2010 apache poi ignoring empty cells