我正在閱讀excel文件* (2000000行,6列) *帶有xlsx擴展名。讀它使用Java Excel的API,但它拋出異常如何使用* .xlsx擴展名讀取Excel文件?
jxl.read.biff.BiffException: Unable to recognize OLE stream
當嘗試用XLS擴展名相同的文件它完美地讀,但它僅讀取65536行數據僅存行的其餘unread.please幫助我如何,我能用xlsx擴展名讀取剩餘的行。
感謝
我正在閱讀excel文件* (2000000行,6列) *帶有xlsx擴展名。讀它使用Java Excel的API,但它拋出異常如何使用* .xlsx擴展名讀取Excel文件?
jxl.read.biff.BiffException: Unable to recognize OLE stream
當嘗試用XLS擴展名相同的文件它完美地讀,但它僅讀取65536行數據僅存行的其餘unread.please幫助我如何,我能用xlsx擴展名讀取剩餘的行。
感謝
嘗試使用Apache POI http://poi.apache.org/spreadsheet/index.html
看看問題是在Office 07微軟改變了文檔格式的東西這是或多或少一個zip文件包含大量的XML。 Java Excel API依賴於舊的文件格式。要從Office '07中讀取某些內容,請使用Apache POI。
對於我們用下面的罐子閱讀XLSX文件,
1.dom4j-1.6.1.jar 2.org-Apache的公地codec.jar 3.poi-3.7.jar 4.poi -ooxml-3.5-FINAL.jar 5.poi-OOXML-模式-3.11-beta2.jar 6.stax-API-1.0.1.jar 7.xmlbeans-2.6.0.jar
這是函數通過它可以讀取xlsx文件。
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);
}
}
-1:像這樣的答案不是很有建設性 - 我猜想山姆有一些具體的業務用例,他需要支持解析Excel文件。作爲一個必須解析WML文件的人,我完全明白他爲什麼會遇到這個問題。 – cwallenpoole 2011-06-17 08:57:30
我也必須解析WML。解決方案不是解析WML。試圖保持與WML的兼容性是一個可怕的長期戰略。但如果他想這樣做的話,那就是#2和#3。 – Mikhail 2011-06-17 22:27:19