zoukankan      html  css  js  c++  java
  • Excel c#Excel工作进程的创建写 与Excel文件的保存[原创] (20100205 11:09)

    Excel工作进程的创建写结束

    创建:

         Microsoft.Office.Interop.Excel.ApplicationClass oExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
               Microsoft.Office.Interop.Excel.Workbook obook = null;
               Microsoft.Office.Interop.Excel.Worksheet oSheet = null;
               Microsoft.Office.Interop.Excel.Range range = null;

    结束:

    方法一:用托管方法

     System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
                   System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
                   System.Runtime.InteropServices.Marshal.ReleaseComObject(obook);

                   oExcel.Quit();
                   System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);

                   GC.Collect();

    方法二:

     excelApp.Workbooks.Close();
                        oExcel.Quit();
                        int generation = System.GC.GetGeneration(oExcel);
                        System.GC.Collect(generation);

    方法三:

       /// <summary>
            /// 销毁进程
            /// </summary>
            /// <param name="datetime">销毁进程的时间</param>
            /// <returns></returns>
            private bool KillExcelProcess(DateTime datetime)
            {
                try
                {
                    System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL");
                    for (int m = 0; m < excelProc.Length; m++)
                    {
                        if (datetime < excelProc[m].StartTime)
                        {
                            excelProc[m].Kill();
                        }

                    }
                    return true;
                }
                catch (Exception ex)
                {
                    strError = "销毁进程出错:" + ex.Message;
                    return false ;
                }
            }

     

    保存并替换原来单页Excel文件

     Application excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
                    excelApp.DisplayAlerts = true;
                    excelApp.SheetsInNewWorkbook = 1;
                    Workbook excelBook = excelApp.Workbooks.Add(Type.Missing );
                    Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.ActiveSheet;

     excelBook.Saved = true;
                    excelBook.SaveCopyAs(strExcelFileName);

  • 相关阅读:
    go 接收发送文件
    【0031】反转整数/判断回文
    【003】链表或字符串的【反转】【左旋转】
    【002】链表或字符串模拟加法/加一/乘法
    【01】数组中只出现一次的数字
    【面试题050】树中两个结点的最低公共祖先
    【面试题049】把字符串转换成整数
    【面试题048】不能继承的类
    【面试题047】不用加减乘除做加法
    【面试题046】求1+2+...+n
  • 原文地址:https://www.cnblogs.com/heling/p/1664401.html
Copyright © 2011-2022 走看看