2010-08-05 54 views
1

我試圖用Java代碼 讀取Excel文件但我得到以下錯誤:如何使用jexcel讀取excel?

jxl.read.biff.BiffException:無法識別OLE流

當我搜索的淨我發現jExcel只支持excel 2003,並且這個錯誤出現在excel是在2007年製作的時候bt我已經保存了我的excel在97-2003格式而且我仍然遇到這個問題

回答

0

我沒有JExcel的經驗,但我相信你在認爲問題是文件格式之一時是正確的。我建議你嘗試Apache POI項目。我廣泛使用它來讀寫Excel電子表格。它將讀取從Excel 5.0開始創建的任何電子表格,並支持.xsl和.xslx文件類型。

+0

u能告訴我如何使用Apache POI,我不有需要的瓶子 – Simran 2010-08-05 09:22:25

+0

哇,這是一個巨大的問題。我建議你查看一下快速指南http://poi.apache.org/spreadsheet/quick-guide.html它包含了POI入門的基礎知識。至於獲得所需的罐子,該網站提供了一個下載,或者你可以像我這樣做,並使用Maven下載它。 – wobblycogs 2010-08-05 10:37:25

-1

我長時間使用JExcel,但從未遇到過這種問題。我認爲你的文件不是XLS格式。您嘗試創建一個新的Excel文件並嘗試讀取它。

+0

答案與問題無關。當她將XlSX文件保存爲XLS時,Simran已經提到過這個問題。 – 2012-12-27 11:41:25

9

JExcel API不支持Excel 2007中,您可以使用Apache POI HSSF/XSSF

這裏是閱讀示例代碼,並從現場重寫工作簿

InputStream inp = new FileInputStream("workbook.xls"); 
//InputStream inp = new FileInputStream("workbook.xlsx"); 

Workbook wb = WorkbookFactory.create(inp); 
Sheet sheet = wb.getSheetAt(0); 
Row row = sheet.getRow(2); 
Cell cell = row.getCell(3); 
if (cell == null) 
    cell = row.createCell(3); 
cell.setCellType(Cell.CELL_TYPE_STRING); 
cell.setCellValue("a test"); 

// Write the output to a file 
FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
wb.write(fileOut); 
fileOut.close();