我想用apache POI讀取一個excel文件。但是,在運行時我得到一個NotOLE2FileException。 I've found this question,這是相似的,但這裏的錯誤顯然是根本沒有文件。我實際上有一個文件,並有一個簽名,但我不知道是什麼樣的簽名,或者我如何讀取文件。 Google沒有結果。什麼樣的標題簽名是0x7473657571655220?
我的代碼:
File file = new File("mypath/myfile.xls");
if(!file.exists()){
throw new IllegalArgumentException("File does not exist");
}
try {
Workbook wb = WorkbookFactory.create(file); //<--- throws exception
//etc...
錯誤:
org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature; read 0x7473657571655220, expected 0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2 document
at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:181)
at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:140)
at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:232)
at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:168)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:250)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:222)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:201)
at providers.ExcelFileReader.getRequestsFromExcelFile(ExcelFileReader.java:25)
at Test.main(Test.java:13)
我只需要明白,爲什麼我的XLS文件有一個奇怪的標題,那意味着什麼,才能夠解決這一。有人知道嗎?可能有任何解決辦法?
哇。該文件確實是我從中提取數據的系統的請求列表。我只是這麼做的。我對excel文件格式在記事本中的顯示方式沒有太多經驗,但相關文件顯示爲製表符分隔的純文本文件,其中每一行都是新行。 – KjetilNordin
好像。你幾乎已經在這裏回答了我的問題。你會用簡短的答案寫下這些嗎?解密簽名非常酷:)。而現在我只需要弄清楚如何讀取一個製表符分隔的文件。迄今爲止解決的問題。 – KjetilNordin