C# 获取处于运行中的Excel、Word对象

在项目中处理Excel和Word时,为确保程序健壮性,需要考虑用户已打开文件的情况。通过捕获异常并尝试获取活跃的Excel或Word对象,匹配文件名来操作。如果捕获到特定COMException异常,表示无打开的Excel,再新建对象进行操作。
摘要由CSDN通过智能技术生成

今日在写项目的过程中,涉及到对Excel和Word的操作,考虑到程序的健壮性,需要对一些特殊情况作出处理,通常情况下,Excel和Word是通过winform下的openfiledialog打开的,这种情况去获取对于对象是十分方便的。

但是有些Word或者Excel由用户自己先行打开了,后面程序再去打开这些文档,就会出现问题,这种情况需要获取Excel或者Word对象该怎么办呢?

通过查阅资料发现,以下代码可以解决。

private void OpenFileDialog()
{
    // 声明一个对象
    Excel._Application objExcel;
    
    OpenFileDialog fileDialog = new OpenFileDialog();
    fileDialog.Multiselect = false;
    fileDialog.Title = "请选择文件";
    
    // 此处只打开word类型文件,对过滤参数进行设置
    fileDialog.Filter = "Excel文件|*.xls;*.xlsx";
    if ( fileDialog.ShowDialog() == DialogResult.OK )
    {
        try
        {
            // 获取到当前处于活跃状态的Excel对象(即已经打开的)
            objExcel = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
            // 根据选择到的文件名去匹配工作对象
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值