xlsapp = new Excel.Application();建立一个新的Application
//
//
//
进行EXCEL导出之后,
xlsapp.Quit();
System.GC.Collect();
但是这样一清除,把正在运行的EXCEL进程(比如打开着的详细设计书)都全部关闭了
如何解决呢?
谢谢大家
private void KillExcelProcess()
{
Process[] processArray = Process.GetProcessesByName("EXCEL");
if (processArray == null || processArray.Count() <= 0) return;
foreach (var excelProcess in processArray)
{
if (excelProcess == null || excelProcess.MainWindowTitle.Contains("Microsoft Excel")) continue;
excelProcess.Kill();
}
}
我是这样处理的,现在情况是之前打开的3个excel文件没有被关闭,还是打开的,而且任务管理器中EXCEL的进程只有1个,初步实现了需求,但是觉得这个方法不太靠谱,会不会有隐藏的bug呀?求解???
可以根据EXCEL的文件名删除,如
if(process.MainWindowTitle=="Microsoft Excel - "+ excelFileName)
process.Kill();
操作excel,比如导入导出数据可以用npoi
我也建议用NPOI,地址:tonyqus.sinaapp.com
比自己写效率高,同时可以完成excel的基本所有操作,而且现在也比较成熟,楼主用这个吧
二楼正解