合併文件夾下所有.xls文件,用jxl來編寫程序報錯jxl.read.biff.BiffException: Unable to recognize OLE stream
原因有二:
1. jxl包只支持excel03版,文件可能是07版本,可利用宏指令,對所有文件批量修改格式,可參考1:
http://zhidao.baidu.com/link?url=d_lq286waS5fGQt0_NZBPhzaWn5V42ihn_mx0ulEifc6d1o1tMLrSjX3JG5y41uqe6hWmfRA5Bh_l75m5VCKFa.
2. 文件不是標準的excel格式,可通過文件–>另存爲方式查看該文件的保存類型,如果是“單個文件網頁”類型,說明這是一個.html文件,不能使用jxl包操作,也不能使用POI操作。
解決方法:
1.如果是少量文件,可以把文件另存爲excel標準格式,再使用jxl包操作。
2.如果是大量文件,無法通過方法1來解決,這時可對html文件解析。
下面針對方法二進行說明:
1.在文件目錄下,右鍵文件打開方式選擇記事本,看到文件爲html格式,而且文件中出現“=E5=B9=B48=E6=9C=88=E8=87=B3”格式內容,可通過Quated-Printable解碼解決這個問題,參考2(http://www.bkjia.com/Javabc/546185.html).
2.本人項目如果參考2程序,中文輸出依舊亂碼,解決方式把最後返回的字符串改爲:
return new String(buffer.toByteArray());
這樣可輸出正常的中文編碼。
3.對得到的字符串解析,本人採用Jsoup包進行解析,可以得到想要的內容並對excel寫操作,這是可以使用.jxl操作。