在 Excel.Interop 和 C# 中调用 Workbook.SaveAs() 时抛出异常

Exception thrown when calling Workbook.SaveAs() in Excel.Interop and C#

我们遇到生产问题,我们使用密码调用 Excel 工作簿的 SaveAs 方法。抛出的异常是:

The remote procedure call failed. (Exception from HRESULT: 0x800706BE)

调用按如下方式完成,其中 _ExcelPassword 是工作簿生成的密码,ExcelOutputPath 是磁盘上应写入文件的位置:

workbook.SaveAs(ExcelOutputPath, XlFileFormat.xlOpenXMLWorkbook, _ExcelPassword, _ExcelPassword, false, false);

不过如果文件没有密码保存也没有问题。

请问我错过了什么?

所以我最终的解决方案是在没有密码的情况下保存工作簿,再次打开它,在工作簿对象上设置密码,然后再次保存。我知道这很乏味,但这完全解决了我遇到的 remote procedure call failed 问题