我正在使用java在gwt中使用Apache POI读取excel文件 . 我有一个excel文件,包含15000条记录和4列Count,Name,Mob No和EmailID . 我正在blobstore GAE上传excel文件,然后我正在读取那个excel文件 . 我只是用logger检查所有数据是否正在读取 . 当我部署并测试时,只有最后266行正在读取并显示在 Logger 中 . 为什么?如何从excel读取所有数据 . 我的代码是:
HSSFWorkbook workbook = new HSSFWorkbook(newBlobstoreInputStream(blobkey));
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
// Traversing over each row of XLSX file
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// For each row, iterate through each columns
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
logger.log(Level.SEVERE,cell.getStringCellValue() + "\t");
break;
case Cell.CELL_TYPE_NUMERIC:
logger.log(Level.SEVERE,cell.getNumericCellValue() + "\t");
break;
case Cell.CELL_TYPE_BOOLEAN:
logger.log(Level.SEVERE,cell.getBooleanCellValue() +"\t");
break;
default :
}
}
System.out.println("");
}
我该如何从头到尾阅读所有数据?任何帮助提前谢谢
还有一个是当我更改XSSFWorkbook和XSSFSheet而不是HSSFWorkbook和HSSFSheet来读取Xlsx excel时,它的抛出异常:org.apache.poi.poifs.filesystem.OfficeXmlFileException:提供的数据似乎在Office 2007 XML中 . 您正在调用处理OLE2 Office文档的POI部分 . 我怎样才能解决这个问题
任何帮助提前谢谢 .
1 回答
对于您获得的异常,.xls文件由HSSFWorkbook和HSSFSheet读取,而.xlsx由XSSFWorkbook和XSSFSheet读取 . 如果您要同时处理.xls和.xlsx格式,则可以使用Factory类来获取相应的工作簿 .