c#如何获取excel应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何获取excel应用程序相关的知识,希望对你有一定的参考价值。

可以通过 new Microsoft.Office.Interop.Excel.ApplicationClass()创建excel应用程序,过程有点慢,并且如果已经存在一个excel进程的话仍然会创建,那有没有办法先判断进程中是否已经存在excel应用程序,如果有的话直接获取这个excel应用程序?

不能直接获取,只能把之前的进程杀死,然后自己再创建。
创建excel应用程序时,一定要主动将创建的程序结束,否则它会一直存在。
参考技术A Microsoft.Office.Interop.Excel.Application m_Excel = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");追问

你好,我再请问下,如何先判断进程中是否存在Excel.Application进程,因为我发现,如果进程中没有excel进程的话,直接运行上面的代码会出错,其实我想要的效果就是如果进程中存在就获取,否则就new。

追答

你判断可以 m_Excel 是否为 null
if(m_Excel == null)

//再在这里new excel进程


再不行用trycatch//出错时,再在这里new excel进程

追问

你说的第一种不行,因为不存在进程时会出错,第二种方法可行,另外还有一种方法,我也是刚知道的,根据Process.GetProcessesByName( "Excel.Application").Length判断,谢谢你!

本回答被提问者采纳
参考技术B 用下卓正软件的pageoffice,挺好用的

以上是关于c#如何获取excel应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 从远程位置将 Excel csv 或 xls 文件的行读入 ASP.NET 应用程序?

c#操作excel

C# NPOI读取excel如何获取工作表sheet名字和个数?

如何从 C# 应用程序中正确清理 Excel 互操作对象?

使用Aspose.Cells如何获取Excel中的真实数据?

如何释放为 Excel(C#)创建的对象 [重复]