COMException(0x80010108 – RPC_E_DISCONNECTED)closuresExcel.Workbook时
当我运行下面的代码,我得到下面的exception:
''# NOTE: ExcelApp is a Private main form variable Dim ReportBooks As Excel.Workbooks = ExcelApp.Workbooks Dim ReportBook As Excel.Workbook = ReportBooks.Open(localFilename) Dim ReportSheet As Excel.Worksheet = ReportBook.Sheets("Report") ''# Retreive data from sheet ReleaseCOM(ReportSheet) ReportBook.Close(True) ''# Error raised here ReleaseCOM(ReportBook) ReleaseCOM(ReportBooks)
ERROR: COMException was unhandled The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
注意:所有数据似乎都已被正确回收。
请帮我诊断并克服这个错误。
RPC_DISCONNECTED …可怕的“ 被调用的对象已经从客户端断开连接 ”问题。 这里有很多原因,看起来你已经用Excel.
覆盖了全局variables的问题Excel.
。 你可以把ReportBook(Close)
下面的第一个ReportBook(Close)
并运行它? 另外,看看这个 。
根据你所展示的代码,我不能说为什么它是失败的。
你有没有考虑从使用COM Interop的Excel Automation切换到第三方组件?
SpreadsheetGear for .NET可以让您加载Excel工作簿并获取值/获取格式化文本/重新计算公式/等…没有与COM Interop相关的麻烦。
你可以在这里看到活的ASP.NET示例,如果你想自己试试,可以在这里下载免费试用版。
免责声明:我自己的SpreadsheetGear LLC
- Excel Interop:Range.FormatConditions.Add抛出MissingMethodException
- 使用.Net Interop从Excel获取DateTime值时缺less毫秒
- 如何将三个Excel工作表放在一个工作簿下
- 在C#中使用excel interop导入txt文件(QueryTables.Add)
- 自动填充错误在Excel中c#
- c#中的Excel自动化通过com互操作性为2003-2010版本
- 如何validationExcel互操作对象是否正确清理?
- Excel Interop打开Excel的macros,禁用macros
- 对.NET DLL的Excel引用会破坏新版本