https://meilishiyan-song.taobao.com/

读取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的时候就出了问题,这时候我们只能把问题抛给客户,客户提出问题以后,让他去根据具体行列将无效超链接问题自行解决了。

 

posted @ 2017-03-22 13:59  望梦圆  阅读(2587)  评论(0编辑  收藏  举报
https://meilishiyan-song.taobao.com/