打开 .xlsx 文件时出现 Excel 互操作错误服务器执行失败(HRESULT 异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

问题描述 投票:0回答:1

我有 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;

如何以编程方式解决这个问题?

c# excel office-interop excel-interop
1个回答
0
投票

我广泛搜索要删除的临时文件,但似乎必须从注册表中删除 Excel 自动恢复文件。

当没有打开工作簿时,在每次迭代之前运行此 PowerShell。根据您的用例修改版本号。

Remove-Item -Path "HKCU:\Software\Microsoft\Office\16.0\Excel\Resiliency" -Recurse -ErrorAction SilentlyContinue
© www.soinside.com 2019 - 2024. All rights reserved.