Olz*_*has 2 java excel-2007 apache-poi excel-2010 jakarta-ee
我遇到问题,当 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);
} }
Run Code Online (Sandbox Code Playgroud)
在读取 Excel 文件的上方,虽然我检查了 Excel 文件,其中一行有 20 个单元格,但它在某些行中只读取了 14 行。我正在使用ArrayList,看来这里应该是并发访问ArrayList的问题。可能是什么原因?
迭代器仅迭代文件中定义的单元格。如果单元格从未在 Excel 中使用过,它可能不会出现在文件中(Excel 并不总是一致...),因此 POI 不会看到它
如果您想确保命中每个单元格,则应该按索引查找,并检查空单元格(表示该单元格在文件中从未存在过),或者设置 aMissingCellPolicy来控制空单元格和空白单元格的显示方式治疗过的
| 归档时间: |
|
| 查看次数: |
6905 次 |
| 最近记录: |