zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    Kotlin学习系列(三)
    获取Android设备标识符
    Kotlin学习系列(二)
    ijkplayer实现IMediaDataSource
    Fresco添加HTTP请求头
    Kotlin学习系列(一)
    完整的Android MVP开发之旅
    Marshmallow权限使用
    APP设计与开发(ui篇)
    下载Android源码
  • 原文地址:https://www.cnblogs.com/jecyhw/p/4047216.html
Copyright © 2011-2022 走看看