Vb.net 关闭Excel.工作簿时出现异常(0x80010108-RPC_E_已断开连接)
当我运行以下代码时,我得到以下异常:Vb.net 关闭Excel.工作簿时出现异常(0x80010108-RPC_E_已断开连接),vb.net,excel,interop,com-interop,excel-interop,Vb.net,Excel,Interop,Com Interop,Excel Interop,当我运行以下代码时,我得到以下异常: ''# 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("R
''# 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)
注意:所有数据似乎都已正确检索
请帮助我诊断并克服此错误。根据您显示的代码,我无法说明失败的原因 您是否考虑过从使用COM互操作的Excel自动化切换到第三方组件 将允许您加载Excel工作簿并获取值/获取格式化文本/重新计算公式/等等。。。没有与COM互操作相关的问题 如果您想亲自试用,您可以查看ASP.NET的实时示例并下载免费试用版
免责声明:我拥有SpreadsheetGear LLCRPC_DISCONNECTED…可怕的“调用的对象已与其客户端断开连接。”问题。这有很多原因,看起来您已经用
Excel解决了全局变量问题。
。你能把第一个ReleaseCOM(ReportSheet)
放在ReportBook(Close)
下面并运行它吗?另外,请检查。不幸的是,将导致错误的行与之前的行进行交换没有任何效果。当试图关闭工作表时,程序仍然崩溃。伙计,很抱歉听到这个消息。我处理过几次这个问题,它总是像巫术一样让它发挥作用。这里的主要问题是,当您进入ReportBook.Close(True)
Excel不再管理ReportBook时,有东西正在释放它,因此出现了错误。您是否尝试过在ReportBook中添加一个手表的调试代码步骤?明白了!代码步进有效。我的代码意外地打开了同一个文件两次并关闭了两次(一次在第二次关闭时崩溃)。谢谢你的帮助。很高兴听到这个。那个特别的错误真的很令人沮丧,所以你把事情解决了真是太好了!你必须对你的定价做些什么$1000对于一个组件来说是错误的。如果你可以使用xlsx,那么还有免费的EPPlus!
ERROR:
COMException was unhandled
The object invoked has disconnected from its clients.
(Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))