如何用* .xlsx扩展名读取Excel文件?

我正在阅读Excel文件* (2000000行6列) * xlsx扩展名。 使用Java Excel API读取它,但它抛出exception

jxl.read.biff.BiffException: Unable to recognize OLE stream 

当尝试使用xls扩展名的相同的文件它完全读取,但它只读取65536行数据只剩下其余的行unread.please帮助我如何我能够读取剩余的行xlsx扩展名。

谢谢

为了读取xlsx文件,我们使用下面的jar文件,

1.dom4j-1.6.1.jar 2.org-apache-commons-codec.jar 3.poi-3.7.jar 4.poi-ooxml-3.5-FINAL.jar 5.poi-ooxml-schemas-3.11-beta2。 jar 6.stax-api-1.0.1.jar 7.xmlbeans-2.6.0.jar

这是可以读取xlsx文件的function。

 public static void readXLSX(String path) { File file = new File(path); String value = ""; XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(path)); XSSFSheet sheet = wb.getSheetAt(0); Row row; Cell cell; Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_BOOLEAN: value = "" + cell.getBooleanCellValue(); break; case Cell.CELL_TYPE_NUMERIC: value = "" + cell.getNumericCellValue(); break; case Cell.CELL_TYPE_STRING: value = "" + cell.getStringCellValue(); break; case Cell.CELL_TYPE_BLANK: value = " "; break; default: break; } System.out.println("Value: "+value); } } 

问题是,在Office '07中,Microsoft将其文档格式更改为大致包含大量XML的zip文件。 Java Excel API依赖于旧的文件格式。 要从Office '07中读取某些内容,请使用Apache POI 。

  1. 不要阅读微软格式。 如果你想要一个excel文件读取CSV,用逗号分隔的列表。
  2. 你的库似乎不支持xlsx
  3. 看看这里select一个Excel的Java API