
1、用文本工具打开xml文件,复制两个item的全部值,不包括前后的标签,另存为xml;
2、在开发工具-xml映射中,添加该xml文件;
3、鼠标点击右侧的映射树状图,会发现下面的提示文字不是非重复了,而是“重复”;
4、这时候把树状图拉到表格中时,就会显示excel标题;
5、然后就可以正常导入数据了。
1如果是.xls的2003版本的文档,则用excel2007打开;反之,如果是.xlsx的2007版本的文档,则用excel2003打开。2使用这种方法可能不能全部恢复内容,而这些内容应该是你用了链接、复杂的引用、引用或定义了名称,请打开后检查之。
步骤二、找出错误
1如果用上面的方法解决了,则恭喜你,后面的复杂的方法你就不需要做了。但治病还得治本,我们还是最好找出问题所在。
2在d出是否信任此工作簿内容时选择“是”,会d出“修复到”对话框:
3在该对话框中显示XML有错误,具体内容是标记元素类型不匹配,如上图。
4居然是XML错误,那我们就可以想办法打开这里提示的“sharedStrings.xml”文件来看看到底有什么错误了。直接“关闭”并关闭EXCEL;
5将原来的.xlsx文档的扩展名由“.xlsx”改为“.rar”:
6将该.RAR压缩件解压缩(先别删除这个.rar档,后面会用到),打开里面的“xl”文件夹,里面有很多的文件了。原来EXCEL是以这样的方式存储档的:
7用浏览器打开“sharedStrings.xml”文件,最后面有“无法显示XML 页”的错误,提示“结束标记'sst'与开始标记'si' 不匹配。”:
8双击左下角的感叹号“完成”按钮(如上图),d出对话框同样显示在xl下的sharedStrings.xml文件中“结束标记‘sst’与开始标记‘si’不匹配。”:
9根据错误提示,是SST或SI标记不匹配导致了,这问题简单呢!因为XML标记比配严格。
10好吧,问题已经找到了,下面就是该怎么修复它了!如果你会编辑HTML,到此步应该难不到你了。
步骤三、修复方法一 ——用记事本修复
1右击该“sharedStrings.xml”文件,选择“打开方式”,选择“记事本”,用“记事本”打开:
2居然上面都找出问题了,我们就可以直接定位到最后分析下:
3如上图,通过对比我们初步找到问题所在:在</sst>前面只有一个</si>,而其它地方都是2个</si>同时出现,所以应该是这里少了个</si>。我们填上去,保存并关闭记事本;
4如果你用记事本修复到此步,可以跳过下面的步骤四,直接到后面的步骤五。
步骤四、修复方法二 ——用Dreamweaver修复
1我们用Dreamweaver打开这个“sharedStrings.xml”文件,打开后按Ctrl+F,输入<si>,点击“查找全部”:
2等查找完毕后我们在最下面的状态栏中可以看到,一共有840个<si>标记,记住这个数字;
3同样的,我们查找<si>匹配的</si>标记一共有多少个,如果正常,应该也是840个才对:
4结果显示,只有839个</si>标记,显然是开始标记<si>没有匹配到</si>结束标记了;
5在查找结果中,我们将滚动条拉到最后,发现是</si></sst>,而上面的都是</si></si>,所以是最后一个</si>丢失;
6双击这个 </si></sst>,定位到这个位置,将之改成</si></si></sst>,保存退出;
步骤五、修复正确的sharedStrings.xml文件
1重新打开.rar档,找到并删除xl目录下面的“sharedStrings.xml”文件:
2再单击“添加”按钮,找到并添加刚刚我们保存过的正确的“sharedStrings.xml”文件:
3添加完成后关闭.rar文件,再重新将.rar改回.xlsx:
4OK,再打开这个.xlsx文件,一切正常,打开了!
5辛苦的工作终于大功告成,你也不用花钱去找数据修复的人给你找回数据了!
步骤六
1好了,现在该谈谈如何防止经常性出现这样的错误了。
2文档中尽量不要用大量的或错误的内部或外部链接,尤其是外部链接。最好是删除外部链接,使用内部链接即可。
3用了复杂的引用。能不引用就不要引用,尽量减少复杂或错误的引用;
4(非自主的)引用或定义了(大量)的名称,请打开后检查之;最好是不要定义和引用名称:
5粘贴的话最好用“选择性粘贴”,选择需要的选项即可,如仅“数值”,尽量不要先粘贴了格式和公式后又来删除公式和格式:
6还有一个问题,差不多和上一条一样,就是尽量不要设置过于复杂的格式,能不需要的就不要设置,比如全选整张表、整行、整列一起设置:
7电脑中存有大量垃圾信息也会导致该问题,建议清理之;
8尽量减少加载项:
9搜狗拼音的pinyinup.exe进程也会导致该问题,不过新版的会不会有这问题就不知道了。
我吧
一般情况,是你的xml映射文件有问题。如果你的xml没有复杂的嵌套逻辑,如以下xml结构:
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
xml映射文件设置为:
<root>
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
<root>
<element01></element01>
<element02></element02>
<element03></element03>
</root>
</roots>
复杂的嵌套xml,目前我还试出来,ms官方给出的范例包括xml数据、xsd定义,在excel中导出的时候居然也报这个错误,有兴趣的同学可以研究下,发个结论。
http://msdn.microsoft.com/zh-cn/library/aa203737(v=office.11).aspx
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)