npoi word在试图打开文件时遇到错误_如何修复word文档的unspecified error

108e140a85fcb341006a5d43bc903b20.png

今天用onedrive+word的时候连续两次出现了这个bug,差点害得我错过deadline。经排查后发现都和word的math有关,所以写下这个心得供日后使用。

错误:

  • word文档 .docx
  • the file _____ cannot be opened because there are problems with the contents. unspecified error Location /xxx/yyy.xml, Line:OO, Colume:??

所需工具:

  • winrar/bandizip
  • sublime+xml indent(用于重新排版xml)+exalt(用validator确保开头结尾成对)

时间:~30分钟

步骤(二分法):

  1. 用winrar/bandizip打开word文档
  2. 用sublime打开出错的xml文件,比如/word/document.xml
  3. 把xml内的东西先复制到一个temp文件中备份
  4. 用xml indent排版xml
  5. 用exalt validator确保没有对齐的错误
  6. 从edit->code folding把代码折叠至level3
  7. 用二分的方式定位出错的语句(~100行范围内)(omath的出错可能性更大)
    1. 删除<body></body>里面的一半行的xml代码(成对的<??></??>删)
    2. 保存
    3. 点一下winrar/bandizip更新.xml文件
    4. 用word打开.docx
    5. 如果成功打开,那么bug就在删除的部分,如果仍然不能打开,那么bug就在剩下的部分
    6. 重复7.1-7.6
  8. 定位到bug后寻找关键词(如:xxxxId:"_______",引号里的id一般都是唯一的)用于删除
  9. 根据bug位置的上下文分析带bug处的原来的语句用来还原
  10. 将temp里的备份重新复制到document.xml里,并根据关键词___删除带bug的行(记得要成对删)
  11. 保存,退出zip,用word打开文件
  12. 重新输入删除的部分

如何避免:

  1. 经常性的手动留个本地备份
  2. 改用latex
  3. 不要把文档放在U盘/one drive上编辑,避免连接断开时出现错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值