1異常信息如下Read excel fail,contact the administrator,please!java.lang.IllegalStateException: The hyperlink for cell X108 references relation rId40, but that didn't exist
原因是在excel文件中,包含了特殊字符
!#$%$#^%$#^%$&%^*&^*(*&(&*)
!@#$%^&*()_+{}|:""<>?!@#¥%……&*()——+{}|:
但是我仔細測試了一下,我的數據如下
另外,在讀取數據的時候,並不能准確的告訴客戶哪一行有問題,這是最要命的
java代碼如下:
FileInputStream fileStream=new FileInputStream(file);
BufferedInputStream buf=new BufferedInputStream(fileStream);
xssfWorkbook = new XSSFWorkbook(buf);//這里會報錯,原因是數據格式有問題,不能直接在原字體上修改格式,而是重新起一行粘貼
最終得知問題原因:
是因為這一行數據加入了無效超鏈接樣式。必須手動將超鏈接去掉
注意提示中有這么一行:X108 這時候就要去X列尋找108行,這一行的無效超鏈接移除就可以解決問題了。
poi已經提示了無效超鏈接的具體行列,這是最好的一點。不過這個問題我也是后來才發現的,在創建book的時候就出了問題,這時候我們只能把問題拋給客戶,客戶提出問題以后,讓他去根據具體行列將無效超鏈接問題自行解決了。