如何确定 Excel-2007 在修复我的文件时删除了什么?

如何确定 Excel-2007 在修复我的文件时删除了什么?

摘要: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 中难以捉摸的差异。

相关内容