阅读excel文件2010 apache poi忽略空单元格

时间:2012-10-24 12:13:17

标签: java java-ee excel-2007 apache-poi excel-2010

我有一个问题,而java应用程序读取Excel文件.xlsx扩展,应用程序正常工作,但在工作簿中有很多工作表,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文件之上,虽然我在那里检查了Excel文件中的一行20个单元格,但是它在某些行中只读取了14行。我正在使用ArrayList,看来这里应该是并发访问ArrayList的问题。可能是什么原因?

1 个答案:

答案 0 :(得分:4)

迭代器只迭代文件中定义的单元格。如果单元格从未在Excel中使用过,它可能不会出现在文件中(Excel并不总是一致...),因此POI将无法看到它

如果你想确保你击中每个单元格,你应该通过索引查找,并检查空单元格(指示单元格从未存在于文件中),或设置MissingCellPolicy来控制如何您希望处理空白和空白单元格