在MS Word中将Excel作为OLE对象embedded,显示错误
我也为MS Excel和MS Word创build了VSTO 。 我想在我的Word文档中embeddedExcel的OLE对象 。 它适用于我的新文档。 现在我把这个文件保存在硬盘的某个地方(例如C:\驱动器)。 现在我试图打开文件 – >打开该文档。 现在,当我双击Excel OLE对象的表,它显示我这样的消息… 我认为我的VSTO没有问题。 我已经禁用了我的VSTO,并按照相同的程序。 但是又失败了。 有没有人尝试过之前成功。 请帮助我的示例代码。
用try-catch-finally包围所有的Application_Workbook代码并释放工作簿对象。 例如。
void Application_WorkbookOpen(Excel.Workbook Wb) { try { // Do Stuff } catch (Exception) { // Probably Eat it } finally { Marshal.ReleaseComObject(Wb); } }
这是一个参考…
停止在代理插件中定义callback事件。 用IConnectionPoint
接口创build一个AdviseSink
。 完成后用Marshal.RCO清理RCW。
以下是一些很好的示例文章,供您阅读:
- https://blogs.msdn.microsoft.com/vsofficedeveloper/2008/04/11/excel-ole-embedding-errors-if-you-have-managed-add-in-sinking-application-events-in-excel- 2 /
- https://blogs.msdn.microsoft.com/rcook/2008/10/30/iconnectionpoint-and-net-or-how-i-learned-to-stop-worrying-and-love-managed-event-sinks-第1部分/
- https://blogs.msdn.microsoft.com/mshneer/2008/10/28/better-eventing-support-in-clr-4-0-using-nopia-support/
- https://blogs.msdn.microsoft.com/mshneer/2008/10/18/com-interop-handling-events-has-side-effects/
一般知识阅读:
- RCW阅读
- PIA阅读
- 办公室特定的PIA readin
当你在word中embeddedexcel时,你会看到一个常见的问题,并且是由插件引起的。 解决这个问题的一个解决scheme是在你的插件(word和excel)中解开所有的应用程序和文档事件,如文档打开。 还要禁用任何第三方插件安装,并检查是否可以解决问题。