Excel——Com组件的使用

来源:互联网 发布:mac系统恢复u盘制作 编辑:程序博客网 时间:2024/05/16 17:26

1、添加对应Excel版本的DLL引用,(如Microsoft.Office.Interop.Excel.dll 11.0对用2003)

2、添加using Microsoft.Office.Interop.Excel;

3、  Application app = new Application();
        object oMissing = System.Reflection.Missing.Value;
        string appPath = AppDomain.CurrentDomain.BaseDirectory;
        Workbook book = null;
        Worksheet sheet = null;
        try
        {
            book = app.Workbooks._Open(appPath + @"xxx.xls", oMissing, oMissing, oMissing, oMissing, oMissing,
                                         oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
            sheet = (Worksheet)book.Sheets[1];
            sheet.Cells[3, 3] ="xxx";
            book.SaveAs(path, oMissing, oMissing, oMissing, oMissing, oMissing, XlSaveAsAccessMode.xlShared,
            oMissing, oMissing, oMissing, oMissing, oMissing);
            book.Close(XlSaveAction.xlDoNotSaveChanges, null, null);
            app.Visible = false;
            app.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);           //该方法是对com组件调用Release()方法,具体的意思就是对该组件的引用计数减一,如果等于零,就可以从内存中delete
            System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
            flag = true;
        }
        catch { }
        finally
        {
            sheet = null;
            book = null;
            app = null;
            GC.Collect();            //强制垃圾回收
        }
其中GC.Collect用来强制垃圾回收结束Excel进程,但是这样用一般不能正常结束的,需要在调用该方法外调用该方法后使用GC.Collect()方法

原创粉丝点击