使用Marshal.GetActiveObject在空白的Excel工作簿中打开Excel工作簿
问题描述:
我创建了许多单元测试。在每次测试开始时,我在TestInitialize
上打开一个空白的Excel工作簿,但是对于这个特殊测试,我需要打开另一个Excel工作簿。我想在打开TestInitialize
的空白工作簿中打开它。我尝试了以下操作,但它将它们作为2个独立的工作簿打开。使用Marshal.GetActiveObject在空白的Excel工作簿中打开Excel工作簿
任何想法为什么会发生这种情况?
我的代码如下
using xl = Microsoft.Office.Interop.Excel;
private static string columnChartTemp = @"Testing\V8\TestMaster\V8.6\Testing\V8.6.0.11 Testing\columnChart.xlsx";
var excel = (xl.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
var myWorkbook = excel.Workbooks.Open(columnChartTemp);
excel.Visible = true;
答
的工作簿是包含一个或多个工作表文件(制表符。)你不能打开另一个工作簿内的工作簿。
听起来好像您想要将工作表中的工作表添加到其他工作簿中。你可以做到这一点。打开两个工作簿并将工作表从一个复制到另一个。
你想打开一个新的工作簿,或只是一个新的标签? – vipersassassin
@vipersassassin我想打开一个工作簿 –
然后它会一直打开一个单独的工作簿。如果将其作为选项卡添加到当前工作簿中,这将成为将其保存在先前打开的工作簿中的唯一方法。 – vipersassassin