我可以将Excel应用程序对象设置为指向已经打开的Excel实例吗?

我目前正在尝试创build一个导出工具将数据推送到Excel中。 但是,第一次推动后,Excel保持打开状态,有时用户可能希望保持Excel打开状态,同时将更多数据推送到同一张Excel表中的另一个页面。 我通常只是在导出完成后才释放COM对象。 我的方法现在的工作方式涉及每次我出口打开一个新的Excel实例…

创build应用程序的全局实例,从开始导出直到closuresExcel应用程序的这一点持续使用是否有好处?

我应该使用事件处理程序来检测什么时候Excel已经closures,所以我知道什么时候释放COM对象?

如果我试图做一个Excel应用程序的全局实例,我可以实例化它,并等待释放它,这样我就不需要尝试再次findExcel的打开实例..但如果我需要find,分配给一个variables,一个打开的Excel实例(以前存在于代码中,但已经释放了COM对象),我该怎么做?

我以前用过这个 tPath是我应该打开/重用的excel文件的path。

Dim exApp As New Excel.Application 'finds the workbook. If it is already open, then it uses that. Otherwise, it opens in new instance Dim wb As Excel.Workbook wb = System.Runtime.InteropServices.Marshal.BindToMoniker(tPath) exApp = wb.Parent 

您可以使用Interop库指向打开的Excel应用程序

(这个代码是用C#编写的,所以VB.Net可能会有一些小的变化)

 oExcel = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")