C#Microsoft Excel 16.0 Object Library使用Excel后自动释放资源,关闭后台运行进程方法

由于需要读取xls格式Excel,使用Microsoft Excel 16.0 Object Library,解决使用Excel后自动释放资源、关闭后台运行进程方法(需要关闭程序就会自动释放,也可以使用句柄关闭进程方法)

using Excel = Microsoft.Office.Interop.Excel;

public class ExcelHelper
{
    public void ProcessExcelFile(string filePath)
    {
        Excel.Application excelApp = null;
        Excel.Workbook workbook = null;
        Excel.Worksheet worksheet = null;

        try
        {
            // 创建Excel应用程序对象
            excelApp = new Excel.Application();

            // 打开Excel文件
            workbook = excelApp.Workbooks.Open(filePath);

            // 获取第一个工作表
            worksheet = workbook.Worksheets[1];

            // 在这里进行Excel操作,例如读取或写入数据

            // 保存并关闭Excel文件
            workbook.Save();
            workbook.Close();

            // 释放Excel对象
            Marshal.ReleaseComObject(worksheet);
            Marshal.ReleaseComObject(workbook);
            Marshal.ReleaseComObject(excelApp);
        }
        catch (Exception ex)
        {
            // 处理异常
        }
        finally
        {
            // 确保释放资源
            if (worksheet != null)
            {
                Marshal.FinalReleaseComObject(worksheet);
            }
            if (workbook != null)
            {
                Marshal.FinalReleaseComObject(workbook);
            }
           
        }
    }
}

注意:这种方法只能打开一次Excel关闭进程有效,多次可能无效,需要彻底关闭Microsoft Excel进程,请使用用来杀掉Excel进程的方法:

using System;
using System.Diagnostics;
public static void KillExcelProcesses()
    {
        Process[] processes = Process.GetProcessesByName("EXCEL");

        foreach (Process process in processes)
        {
            try
            {
                process.Kill();
                process.WaitForExit();
                process.Close();
            }
            catch (Exception ex)
            {
                // 处理异常情况
                Console.WriteLine("无法杀死Excel进程:" + ex.Message);
            }
        }
    }

其它方法请参考:C#彻底释放EXCEL_c# 释放excel_lainY7mail的博客-CSDN博客

上面内容用于记录自己的学习与分享,分享让技术更进一步!

技术来源于思想自由、独立思考、辩证分析、逻辑思维与人类自由的创新,来服务于人类生活各种方便,而不是为了用技术打造思想鸿沟围城来制造愚蠢;技术是好的与坏的,好人用技术是更好的,坏人用技术是更坏的。推荐好书:乔治.奥威尔的《1984》、扎米亚京《我们》、阿道司·赫胥黎《美丽新世界》,有多个译本,选择喜欢且好的译本就行了;还有柏拉图的《理想国》、[法]孟德斯鸠的《论法的精神》、哈耶克《通向奴役之路》(港版)(港版翻译较好大陆版本,英语过硬的最好看英文原版),现在网店都有售卖!阅读好书,阅读大部分人未阅读过与课堂没有的书,阅读这片土地没有的知识就能增加一种思辨思维与智慧,才能走出狭隘思维偏见的洞穴!

柏拉图在他的巨著《理想国》的第七卷里写到了洞穴理论阐明:一群从小被囚禁生活在洞穴里人,在洞穴外面的光线照明下,往内看是一片片黑影,往外看是光明的海阔天空,越看越明亮!

见多识广,包容的人更自信、思维更多元,包容好的文化使人更强大,越自信越包容越强大!包容让你用上网络、电话、各种电器、汽车、芯片、铁路、高铁................

猜你喜欢

转载自blog.csdn.net/m0_58015531/article/details/132347311