讀取excel的時候,異常信息The hyperlink for cell A2 references relation rId1, but that didn't exist!


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的時候就出了問題,這時候我們只能把問題拋給客戶,客戶提出問題以后,讓他去根據具體行列將無效超鏈接問題自行解決了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM