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