我使用C#语言编写了一个用于Office 2013的Excel Addin。
我知道有几种方法可以打开现有的Excel文件,但是所有这些文件都在Excel上的新实例中打开文件。
我有一个Excel的当前实例,并希望当有人点击某个按钮时,新文件会以当前的异常(不是新的)打开!
例如我使用以下代码:
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
string workbookPath = (@"C:\Downloads\Sample.xlsx");
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
true, false, 0, true, false, false);
但是这段代码在excel文件的新实例中打开了Sample.xlsx。
任何想法?
提前致谢。
答案 0 :(得分:6)
Excel.Application excelApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
答案 1 :(得分:3)
加上@LS_dev解决方案,我添加了excelApp.ActiveWorkbook.Close()命令使其正常工作。
Excel.Application excelApp = (Excel.Application) System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
excelApp.ActiveWorkbook.Close();
string workbookPath = (@"C:\Downloads\Sample.xlsx");
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
true, false, 0, true, false, false);