我有 C# 批处理打开、计算和关闭许多 Excel 工作簿。经过不同次数的迭代后,当我尝试打开下一个工作簿时,出现以下错误。
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
当我尝试在 Excel UI 中打开工作簿时,Excel 挂起很长时间,然后最终显示一个很长的自动恢复文件列表。在 UI 中手动清除此列表后,批处理应用程序将不再出错。但直到自动恢复的文件列表再次变得太长为止。
尽管如此
还是会发生这种情况ExcelWorkBook.EnableAutoRecover = false;
如何以编程方式解决这个问题?
我广泛搜索要删除的临时文件,但似乎必须从注册表中删除 Excel 自动恢复文件。
当没有打开工作簿时,在每次迭代之前运行此 PowerShell。根据您的用例修改版本号。
Remove-Item -Path "HKCU:\Software\Microsoft\Office\16.0\Excel\Resiliency" -Recurse -ErrorAction SilentlyContinue