Poi導出excel文件提示"由於一些內容不可讀取,Excel無法打開"

首先描述下現象,導出後的文件使用wps可正常打開,一旦使用office則會報如上語句,需點擊打開並修復按鈕,錯誤圖如下:

雖然修復後數據都正常,但是測試不讓過,導致我很鬱悶,寫過那麼多次導入導出,代碼明明都差不太多,唯獨這次出現不兼容的問題,找了很多資料,現在總結部分原因以及樓主的最終解決方案,當然最笨的方法就是代碼一行一行註釋然後導出測試並找到最終的錯誤代碼(然鵝該方法我測了n遍也沒找到錯誤代碼...)
1、是否sheet頁的名稱含有時間或特殊字符
2、單元格樣式設置不合理,如列寬、行高
3、controller層response需配置Content-Length

response.setHeader("Content-Length", String.valueOf(arr.length)); // arr爲字節數組

樓主就是用第三種方法解決的,根本不知道爲什麼,重新測試時把該行又註釋了,結果導出後竟然office也能正常打開,這是我第一次感受到代碼的玄學...特此記錄下
當然配置時最好也加上Content-Type,如下

response.setContentType("application/vnd.ms-excel");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章