首页 > Windows开发 > 详细

C#创建excel并释放资源

时间:2014-10-24 01:36:52      阅读:345      评论:0      收藏:0      [点我收藏+]
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();
        }
    }

 

C#创建excel并释放资源

原文:http://www.cnblogs.com/jecyhw/p/4047216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!