asp.net 調用 excel 組件

來源:互聯網
上載者:User
Asp.net 如何調用 Excel ?

1.         引用 Microsoft.Office.Interop.Excel.dll,自動封裝成Interop.Microsoft.Office.Interop.Excel.dll

2.         代碼:

/// <summary>

    /// 產生 excel 報表

    /// </summary>

    private void CreateExcelReport()

    {

        string xlTemplateFullPath = Server.MapPath("~/Function/Business/ExcelTemplate/OTOCFPY.xls");

        string xlSavePath = Server.MapPath("~/Function/Business/ExcelReport");

        _Application xlApp = null;

 

        _Workbook xlWorkbook = null;

 

        _Worksheet xlWorksheet = null;

 

 

 

        System.Reflection.Missing oMissing = System.Reflection.Missing.Value;

 

        try

        {

          

            xlApp = new ApplicationClass();

            xlWorkbook = xlApp.Workbooks.Open(xlTemplateFullPath ,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing,

                oMissing);

            xlWorksheet = (Worksheet)xlWorkbook.Worksheets[1];

 

            xlSavePath = Path.Combine(xlSavePath, DateTime.Now.Ticks.ToString());

 

          //寫入excel資料

            WriteData(xlWorksheet );

 

            xlWorkbook.SaveAs(xlSavePath, oMissing, oMissing, oMissing, oMissing,

 

              oMissing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, oMissing, oMissing, oMissing,

 


            oMissing, oMissing);

            xlApp.Visible = true;

            xlApp.Quit();

              //發送excel 檔案到用戶端

            Response.Clear();

            Response.Buffer = true;

            Response.ContentType = "application/ms-excel";

            Response.AppendHeader("Content-Disposition", "attachment;filename=todayDownList.xls");

            System.IO.FileInfo fileInfo = new FileInfo(xlSavePath+".xls" );

            Response.AddHeader("Content-Length", fileInfo.Length.ToString());

         

            Response.WriteFile(fileInfo.FullName);

            Response.End();

        }

        catch (Exception ex)

        {

            Response.Write(ex.Message);

        }

 

        finally

        {

 

            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);

 

            xlApp = null;

 

            GC.Collect();

 

        }

    }

注意點

用完excel後一定要釋放excel

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.