摘要:Excel 修复了我的文件,告诉我删除了什么,我进入 xml/zip 结构进行调查,但无法弄清楚更改了什么。有人知道我可以做些什么来更好地了解 Excel 更改了什么吗?尝试确定是徒劳的吗?感觉这应该是可能的,而且我快到了……
细节:
当我打开已重命名为 unnamed.xlsm 的文件时,收到以下通知:“Excel 在‘unnamed.xlsm’中发现无法读取的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的内容,请单击“是”。“
我知道文件是安全的,我单击“是”,然后收到一条消息“Excel 能够通过修复或删除无法读取的内容来打开文件。” 它提供了以下摘要,但也提供了一个 xml 文件,该文件似乎包含相同的内容,所以我没有显示它。摘要:
Removed Records: Shared formula from /xl/worksheets/sheet3.xml part
Removed Records: Formula from /xl/calcChain.xml part (Calculation properties)
为了确定问题,我创建了有问题的文件的副本,将其重命名为以“.zip”结尾,打开 Excel 表示已修改的文件(sheet3),并仔细查看了 xml 内容,但这没有任何帮助。我尝试保存修复后的文件并对 sheet3 的 xml 进行简单的比较,但有很多更改,这也没有帮助。我对 calcChain.xml 做了同样的事情,这更有用。在以文本格式保存带有换行符的显示 xml 后,很容易识别已删除的项目,但现在我想弄清楚它们的含义。也许它们提供了有关 shee3 发生了什么的线索。以下比较很长,但我不知道整个差异是否相关。
FILE COMPARISON
Produced: 1-7-2011 2:42:26 PM
Mode: Just Differences
Left file: u:\My Documents\[redacted]\calcChain_orig.xml
Right file: u:\My Documents\[redacted]\calcChain_rep.xml
812 <c r="H18" i="8" /> <> 812 <c r="N2" i="8" />
814 <c r="G18" /> +-
816 <c r="D19" /> +-
818 <c r="F19" /> +-
820 <c r="E18" /> +-
822 <c r="N2" i="8" /> +-
824 <c r="H18" /> +-
-+ 820 <c r="H15" />
821 <c r="H13" />
822 <c r="O19" />
823 <c r="O17" />
824 <c r="O15" />
825 <c r="M19" />
826 <c r="M17" />
827 <c r="M15" />
828 <c r="M13" />
829 <c r="J19" />
830 <c r="J17" />
831 <c r="J15" />
832 <c r="J13" />
833 <c r="O14" />
834 <c r="H18" i="8" />
835 <c r="G18" />
836 <c r="D19" i="5" />
837 <c r="F19" />
838 <c r="E18" i="8" />
839 <c r="H18" i="9" />
827 <c r="H15" /> +-
829 <c r="H13" /> +-
831 <c r="O19" /> +-
833 <c r="O17" /> +-
835 <c r="O15" /> +-
837 <c r="M19" /> +-
839 <c r="M17" /> +-
841 <c r="M15" /> +-
843 <c r="M13" /> +-
845 <c r="J19" /> +-
847 <c r="J17" /> +-
849 <c r="J15" /> +-
851 <c r="J13" /> +-
853 <c r="O14" /> +-
1209 <c r="H48" /> +-
1210 <c r="H62" />
答案1
排序后唯一真正的差异是:
1,2c1,2
< <c r="D19" />
< <c r="E18" />
---
> <c r="D19" i="5" />
> <c r="E18" i="8" />
7d6
< <c r="H18" />
9,10c8
< <c r="H48" />
< <c r="H62" />
---
> <c r="H18" i="9" />
看起来 H48 和 H62 可能是损坏或丢失的,删除它们需要在 D19、E19 和 H18 中添加显式数字,而之前隐式值是没问题的。编辑 OOXML 文件的非 Microsoft 软件通常会这样做;更智能的软件会完全删除 calcChain 文件并强制 Excel 重新创建它。
常规的 diff 软件对于 XML 来说总是完全失败的,使用XML 差异相反。有大量的 GUI 和命令行,您可能能够通过这种方式找到 sheet3.xml 中难以捉摸的差异。