【整理】解决Excel 2007的"XML 错误的 /xl/sharedStrings.xml"

本文介绍了解决Excel .xlsx文件打开时出现数据丢失问题的方法。通过修改文件格式为.zip,编辑sharedStrings.xml文件中的<si></si>标签,最终成功恢复了文档中的文字性说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象:

当打开Excel 2007格式(.xlsx)文档时,弹出以下提示框:


选择“是",恢复数据内容,文档中的文字性说明(或字符串形式)全部消失:



解决方法一:

1).xlsx 文档 格式是Microsoft的专有格式,Excel提供的修复方法仅仅是其程序自带的“内容恢复”
2).xlsx文档的格式其实是zip压缩了的xml文件集合
3)将扩展名改为.zip
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打开,所有数据恢复了。

解决方法二:

1.复制一份该文件,并将扩展名“xlsx”改成“zip”;
2.打开此压缩文件,找到“xl”下的“sharedStrings.xml”并解压出来,保留此窗口;
3.用“记事本”将解压出来的文件“sharedStrings.xml”打开,使用查找替换功能将所有的“</r><si>”替换成“</r></si><si>”,并保存关闭;(不知道是否存在“</t><si>”等其它情况)
4.将改好的文件拖回步骤2中的窗口,并确定关闭;
5.将文件扩展名从“zip”改回“xlsx”即可。

结论:
这个错误的本质原因是xl/sharedStrings.xml文件中有不完整的<si></si>匹配对

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值