【发布时间】:2016-07-17 05:40:39
【问题描述】:
我想检查 excel 是否打开。如果是,我想保存活动工作簿并关闭 Excel。本质上,我的目标是杀死每个 excel 进程,但在此之前我想保存 excel 工作簿。这是我的代码...
Process[] localByName = Process.GetProcessesByName("excel");
for (int i = 0; i < localByName.Length; i++)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xlApp.ActiveWorkbook;
wb.Save(); // I get an error here. "Object reference not set to an instance of an object".
GC.Collect();
GC.WaitForPendingFinalizers();
wb.Close();
Marshal.FinalReleaseComObject(wb);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp);
}
我读到 xlApp.ActiveWorkbook 以只读模式获取工作簿。这可能是我的问题吗?如果是这样,请提出一个成功的方法来解决这个问题。谢谢!
【问题讨论】:
-
尝试获取一个实例到 excel 应用程序stackoverflow.com/questions/1118735/…