我有一个C#程序,它读取 AND 使用Microsoft Interop从同一个Excel文件写入数据(然后再处理数据,例如将其导出到另一个接口)。
所以基本上我的项目中有一个类'ExcelFileReader',它打开ExcelFile,读取和写入数据,然后关闭文件。
代码段:
m_ExcelApp = new Excel.Application();
m_ExcelWorkBook = m_ExcelApp.Workbooks.Open(m_ExcelPath, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
正如您所看到的,.open方法中的第三个参数是false,这意味着'readonly = false'(因为正如我已经提到的,我需要将数据写入文件)。因此,当我运行我的程序时,必须关闭Excel文件。
我现在要做的是编写一个VBA宏(包含在我的Excel文件中),它启动我的程序(当然还可以读取和写入我现在打开的Excel文件中的数据)。我知道如何在Excel中包含* .tlb文件。
但是(我认为)我需要做的就是将引用从打开的Excel文件传递到我的应用程序??
如果可能的话,你有什么想法吗?如果是的话,我怎么能这样做?非常感谢你!
答案 0 :(得分:0)
知道了!它并不复杂!
在VBA中,可以将工作簿的引用作为方法中的参数传递。所以我基本上做的是将工作簿的引用传递给我的TypeLibrary。在我的C#-Program中,我不再打开我的ExcelFile了,只是写了
m_ExcelWorkBook = parameter_WorkBook;
那就是它。
是的。可以将Excel-Workbook-Reference传递给类型库并使用它!