Excel 自动恢复占用了全部 16GB 的 RAM,并且从未加载其占用的 32MB 文件

Excel 自动恢复占用了全部 16GB 的 RAM,并且从未加载其占用的 32MB 文件

我已经阅读了所有我能找到的自动恢复问题,虽然如果文件出现的话有些问题会很有用,但这似乎有所不同。

我当时正在处理一个非常大的数据集。我将该数据集复制并粘贴到一个表中,该表在最后几列中对该原始数据进行了相当广泛的计算(如果加载成功,我需要检查列的顺序……可能的问题是操作顺序混乱,从左到右,造成处理循环。对于较小的数据集(几千行)来说,这种情况不会很明显,但对于几万行来说,情况可能会大不相同……

该表格花了大约 5 个小时才处理完毕。我尝试保存它,但在此期间我的计算机丢失了网络驱动器(另一个恼人的问题),因此我将其保存到网络位置(与网络驱动器相同,只是使用 IP 地址而不是服务器名称。似乎保存得很好。)

我重新启动以清除 RAM 和所有内容,然后尝试打开保存的文档。Excel 显示文件已损坏,又花了大约 5 个小时才完成错误检查。它删除了表格格式,并且丢失了许多公式......一切都很好,很容易恢复。我将文件保存在本地以避免任何网络问题。

我尝试打开文件,但花了几个小时却始终打不开,于是我放弃了。但是,不止一个 Excel 进程启动了,第二个进程占用了电脑上全部 16GB 的 RAM(Windows 7、Office 2016、3.2 MHz、四核,所有内容均已完全更新)。

我甚至尝试打开一个新的空文档。它打开得很好,但 Process Explorer 中出现了另一个 Excel 进程,并且进程稳步增长,直到它占用了 100% 的可用内存和 0-1% 的 CPU。空工作簿几乎无法使用,键盘/鼠标输入和响应之间有 6-10 秒的延迟。

我已经看过说明关闭自动保存/恢复从文档内部,但如果文档从未加载,这似乎是不可能实现的。

我知道开关可以将其添加到基本的 excel.exe 命令中,但我找不到任何与禁用自动恢复相关的命令。我甚至找不到自动恢复理论上尝试自动恢复的 tmp 文件。我只想删除它并尽量减少我的损失。

让我担心的是,即使只是尝试启动一个新工作簿,这种情况也会发生,因此旧的“将数据复制到新工作簿”解决方法已经过时了,因为我无法让它完成加载,因此我无法创建一个新工作簿。我甚至无法从头开始启动项目(呜呜!),因为 Excel 会因为这个幻影自动恢复过程而停止运行。

所以,长问题短说:如何在启动 Excel 时绕过自动恢复(以及任何其他“有用”的功能)?

答案1

删除两者中的所有临时文件
Users/username/AppData/**Roaming**/Microsoft/Excel
似乎
Users/username/AppData/**Local**/Microsoft/Excel
已经解决了 Excel 崩溃的问题,每次我尝试启动 Excel 时都会尝试自动恢复这个损坏的文件,除了使用 /s 标志,如评论中所述。

另外,服务器上的影子副本非常好用。我找到了一个版本,在这个版本中,我只会丢失 2 天的工作成果,而不是 5 天。:D 我会接受的!

答案2

附加答案/观察:我开始向表中添加数据行,并逐渐增加增量(实际上是 2 行,然后是 20 行,然后是 200 行,然后是 1,000 行)。一切似乎都进展得很顺利……我开始一次添加几千行,这需要几秒钟来处理,但没有什么可担心的。我意识到我仍然打开了 Process Explorer,并且看到内存使用量随着表中的每个行添加而增加。我删除了几千行,内存马上就回来了。

因此,Excel 表格(与常规电子表格相比)似乎占用了更多 RAM,并且占用方式相当线性。我开始在表格中放入大约一千行,获取我需要的所有解析/修订/编辑,然后将其作为值复制到另一张表,并从表格中删除。

另一个可能的情况是:至少有两个公式比较一列中的值,这些值可能有重复项,并在下一列中仅打印一次。因此,它总是扫描列中的所有值……与仅连接值或根据格式修改数据的公式(123abc456 vs abc456 vs 123abc456.78 等)相比,这似乎会产生大量的开销。这些只是跨行工作,而不是扫描整个列。

相关内容