解决Excel 2007的"有 XML 错误的 /xl/sharedStrings.xml"问题
2009-06-18 11:47
656 查看
新浪微博: @wandering
昨天下班前,在关闭了辛辛苦苦编辑了一天的Excel 2007格式(.xlsx)文档时,心中掠过一丝阴影,重新打开文档,出现了下面的错误:
选择“是”进行恢复,又出现了下面的错误提示,并且所有文字内容全部丢失了。
接下来试了一些方法,没有成功,在网上搜索到了相似的案例,这可能还真是excel 2007的一个BUG,而且所有文章都没有给出解决方法,看来文件恢复的希望是没有了。
说说我都做了什么吧:
1)确认了自己使用的确实是.xlsx文档格式,从网上搜索的结果看是Microsoft的专有格式
2)Excel提供的修复方法仅仅是其程序自带的“内容恢复”
3)从网上查到了一篇文档,介绍了.xlsx文档的格式,知道了它其实是zip压缩了的xml文件集合
4)解压后查看 xl/sharedStrings.xml 文件内容,发现自己编写的内容还在。
5)直接用浏览器打开 xl/sharedStrings.xml 发现了这样的错误提示:
6)意识到可能是<si></si>匹配对有缺失,通过对xl/sharedStrings.xml文件中的<si>和</si>分别进行文本查找,发现2者的数量相差1,</si>少了一个。
7)通过正则表达式替换、过滤得到下面结果,找到了</si>缺失的位置:
8)到xl/sharedStrings.xml文件中,找到缺少</si>的<si>,手工补齐</si>。
9)用浏览器打开xl/sharedStrings.xml,不再提示错误。
10)把.xlsx的扩展名改为.zip,用Windows资源管理器打开,用修改后的xl/sharedStrings.xml替换旧文件,再把扩展名改回.xlsx。
11)再用excel 2007打开,所有数据恢复了。
---总结---
我遇到的这个错误的本质原因是xl/sharedStrings.xml文件中有不完整的<si></si>匹配对。其他朋友遇到相同的错误,不一定是与我相同的原因造成的。但找到问题原因的思路可以借鉴。希望这篇文档能够对大家有所帮助。
附:我现在改用openOffice编辑重要文档。
昨天下班前,在关闭了辛辛苦苦编辑了一天的Excel 2007格式(.xlsx)文档时,心中掠过一丝阴影,重新打开文档,出现了下面的错误:
选择“是”进行恢复,又出现了下面的错误提示,并且所有文字内容全部丢失了。
接下来试了一些方法,没有成功,在网上搜索到了相似的案例,这可能还真是excel 2007的一个BUG,而且所有文章都没有给出解决方法,看来文件恢复的希望是没有了。
说说我都做了什么吧:
1)确认了自己使用的确实是.xlsx文档格式,从网上搜索的结果看是Microsoft的专有格式
2)Excel提供的修复方法仅仅是其程序自带的“内容恢复”
3)从网上查到了一篇文档,介绍了.xlsx文档的格式,知道了它其实是zip压缩了的xml文件集合
4)解压后查看 xl/sharedStrings.xml 文件内容,发现自己编写的内容还在。
5)直接用浏览器打开 xl/sharedStrings.xml 发现了这样的错误提示:
6)意识到可能是<si></si>匹配对有缺失,通过对xl/sharedStrings.xml文件中的<si>和</si>分别进行文本查找,发现2者的数量相差1,</si>少了一个。
7)通过正则表达式替换、过滤得到下面结果,找到了</si>缺失的位置:
8)到xl/sharedStrings.xml文件中,找到缺少</si>的<si>,手工补齐</si>。
9)用浏览器打开xl/sharedStrings.xml,不再提示错误。
10)把.xlsx的扩展名改为.zip,用Windows资源管理器打开,用修改后的xl/sharedStrings.xml替换旧文件,再把扩展名改回.xlsx。
11)再用excel 2007打开,所有数据恢复了。
---总结---
我遇到的这个错误的本质原因是xl/sharedStrings.xml文件中有不完整的<si></si>匹配对。其他朋友遇到相同的错误,不一定是与我相同的原因造成的。但找到问题原因的思路可以借鉴。希望这篇文档能够对大家有所帮助。
附:我现在改用openOffice编辑重要文档。
相关文章推荐
- 解决Excel 2007的"有 XML 错误的 /xl/sharedStrings.xml"问题
- 解决Excel 2007的"有 XML 错误的 /xl/sharedStrings.xml"问题 (“发现不可读取的内容,是否回复此工作薄的内容...")
- 【整理】解决Excel 2007的"XML 错误的 /xl/sharedStrings.xml"
- 修复Excel有 XML 错误的 /xl/sharedStrings.xml
- 解决 "检出Maven项目web.xml is missing"错误 和 “Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- 在VS2017环境下Qt读写Excel遇到"无法打开 源 文件 'QAxObject'"的错误解决办法
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- Android开发中遇到的问题(五)——Eclipse导入Android项目出现"Invalid project description overlaps the location of another project"错误的解决办法
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- 解决[ASP.NET]"编译器错误信息: CS1595: 已在多处定义"的问题
- 解决 "GStreamer 遇到了常规流错误"问题
- "error while loading shared libraries:libatomic.so.1:cannot open shared objec"问题解决办法
- 【转】"已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- 解决 "GStreamer 遇到了常规流错误"问题
- 解决 POI 操作2007格式的Excel报错问题:java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlOptionsz
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- Access 导入excel文件时,发生"试图导入文件"*****"时发生错误.文件未被导入."的问题解决办法
- "已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- 将Excel导入MSSQL2000时出现"对于所指定的缓冲区来讲太大"错误的解决方法
- 关于Android4.0 emulator-arm.exe-应用程序错误,内存不能为"read"问题解决方法