如何防止 Excel 在退出时修改文件?

如何防止 Excel 在退出时修改文件?

每当我打开一个 Excel 文件,然后关闭它而不做任何更改时,Excel 就会修改该文件,而无需请求权限或发出任何警告。它只修改了偏移量 0x046C 处的 4 个字节,我怀疑这可能只是硬编码的最后修改时间或类似的东西。

问题是,这确实会搞乱版本控制系统,因为文件的 MD5 总和会发生变化。

有什么方法可以阻止 Excel 执行此操作?据我所知,文件中没有公式链接或任何其他动态元素。

答案1

我遇到了同样的问题,经过几个小时阅读多个论坛和页面后,我找到了问题的根本原因和解决方案,所以我将在阅读的论坛上复制并粘贴我的答案。

Excel 文件,特别是 Excel 2003 xls 文件似乎存在问题,每当在 Excel 中打开它们时,即使它们没有被更改并且没有被保存,Excel 也会自动更新文件的某些元数据,例如“文档属性和个人信息”和“上次访问统计信息”,因此每次打开文件时都会发生一点变化,这会导致 MD5 也发生变化。

解决方案:

避免此问题的一种方法是删除文档属性和个人信息

要从 Office 文档中删除隐藏数据和个人信息,Excel 2007以及Excel 2013/2010

避免这种情况的另一种方法是使用.xlsx文件。我一直试图在.xlsx文件中复制此行为,但它似乎只发生在.xls(2003) 文件上。

答案2

为了避免更改任何文件元数据的可能性,请复制该文件并打开该副本。

相关内容