• C#创建excel并释放资源


    using System;
    using Microsoft.Office.Interop.Excel;
    using Excel = Microsoft.Office.Interop.Excel;
    using System.IO;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    public class Class2
        {
            private string filePath;
            private Excel.Application app = null;
            private Workbook wb;
            private Worksheet ws;
            private Workbooks wbs;
            /// <summary>
            /// 创建
            /// </summary>
            /// <param name="filePath"></param>
            public void create(string filePath)
            {
                this.filePath = filePath;
                app = new Excel.Application();
                if (app == null)
                {
                    Out.show("无法创建Excel对象,可能您的电脑未安装Excel!");
                    app.Quit();
                    GC.Collect();
                    return;
                }
                try
                {
                    app.Visible = false;
                    app.Application.DisplayAlerts = false;
                }
                catch (Exception e)
                {
    
                }
                wbs = app.Workbooks;
                wb = wbs.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                ws = wb.Worksheets[1] as Worksheet;
            }
    
            public void Write()
            {
                ws.Cells[1, 1] = "hello";
            }
            /// <summary>
            /// 保存文件
            /// </summary>
            public void Save()
            {
                while (File.Exists(filePath))
                {
                    try
                    {
                        File.Delete(filePath);
                        break;
                    }
                    catch (Exception e)
                    {
                        if (MessageBox.Show("该文件已被占用,请关闭", "提示", MessageBoxButtons.RetryCancel)
                            != DialogResult.Retry)
                        {
                            break;
                        };
                    }
                }
                wb.Saved = true;
                wb.SaveAs(filePath);
                Kill();
            }
            [DllImport("User32.dll", CharSet = CharSet.Auto)]
            public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
            /// <summary>
            /// 杀掉对应进程,释放资源
            /// </summary>
            public void Kill()
            {
                int processId;
                GetWindowThreadProcessId(new IntPtr(app.Hwnd), out processId);
                Out.show(processId.ToString());
                System.Diagnostics.Process.GetProcessById(processId).Kill();
            }
        }
  • 相关阅读:
    node中__dirname、__filename、process.cwd()、process.chdir()表示的路径
    formidable模块的使用
    对象函数的readFileSyc类
    nodejs的事件驱动理解
    书籍类
    Cookie的弊端
    Codeforces 1015 E(模拟)
    Codeforces 1015D(贪心)
    牛客网暑期ACM多校训练营(第五场)I(树状数组)
    2018牛客暑假多校第五场 A(二分答案)
  • 原文地址:https://www.cnblogs.com/jecyhw/p/4047216.html
Copyright © 2020-2023  润新知