easyexcel解析excel失败--无效字符

zgw06629 发布于 01/24 16:54
阅读 609
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

使用easyexcel解析excel的过程中 遇到了如下的报错

Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xffff) was found in the element content of the document.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
	at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.parseXmlSource(XlsxSaxAnalyser.java:197)

用excel也打不开

但用wps可以打开

程序解析 有没有什么办法忽略这个错误呢?

 

 

以下是问题补充:

@zgw06629:按照@osc_79057982的提示 看了下xl/sharedStrings.xml中存在字符<ffff> wps另存为之后 变成了 _xffff_  但不知道该怎么略过这种非法字符 (01/26 12:49)
加载中
1
我们始终是路人
我们始终是路人

新建个excel 把wps内容复制过去 然后 用程序读新的excel

1
osc_79057982
osc_79057982
可以把导出的excel文件后缀改成zip,然后解压,在 /xl/worksheets/里找到对应的sheet的xml。打开后人工核对下错误字符出现的位置和相关内容做排查。(之前解决过一个excel打开报错,wps打开可以的问题)
1
ArchitectureMaster
ArchitectureMaster

题主这是两个问题,1.你的excel文件是xls还是xlsx如果是前者,那使用的是二进制流,当然使用openxml的基于sax解析的方式是打不开的。easyexcel解析excel是基于openxml制定的新的excel规则的文档,而打开的是老旧的2003格式自然会出这个异常!2.如果是格式正解是xlsx则有可能是easyexcel的bug。可以看出easyexcel是基于sax来解析xlsx里的xml文档的,2007以上的excel格式的文件其实就是一个压缩文件,里面包含了很多定义了样式、格式、内容的xml文件。通过对xml文件的解析达到解析excel的目的,而如果程序有bug就会出错,而题主报的错正好的解析里面xml时出的异常!当然也不排除楼上所说的xml文档有问题!但题主所说的如果用一般的office可打开就证明这些即或有错误也能正常打开。如果打不开只能证明这个easyexcel组件存在bug,读不了有一点错误的excel!

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部