读取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的时候就出了问题,这时候我们只能把问题抛给客户,客户提出问题以后,让他去根据具体行列将无效超链接问题自行解决了。
本博客中所有内容为本人自学及总结内容,
仅代表个人观点,如有错误,麻烦大家及时指出并提示我更正。谢谢