Excel的互操作错误在打开工作簿
问题描述:
我试图打开Excel工作簿时出现错误:Excel的互操作错误在打开工作簿
var workbook = Workbooks.Open(filePath)
之后,每次我有时间:
从HRESULT异常:0x80020005(DISP_E_TYPEMISMATCH)
什么是有趣的,当即时通讯Thread.Sleep(2000年)之前“打开”功能 一切工作正常:
Thread.Sleep(2000);
var workbook = Workbooks.Open(filePath)
代码正在主线程上运行。
任何想法应该导致这种行为?
谢谢!
答
我修复了这个问题。
Excel工作簿打开两次,每次我调用releaseCom方法。
如果睡眠正在修复它,那么你可能需要向我们展示以前的调用,比如'DoAsyncTaskThatOpensExcelButTakesASecondBeforeItsDone()',比如'Process.Start()'(粗略地说,当过程存在时认为它会返回,这意味着Excel已经准备好与之交互了)。 – Quantic
你如何打开Excel? – Hambone