在伺服器端產生Excel檔案然後從伺服器下載的本地的代碼

來源:互聯網
上載者:User

這個方法適用所有類型檔案,你可以適當修改代碼就行了       

 protected void Button1_Click(object sender, EventArgs e)
        {
          object     filename = Guid.NewGuid()  ;
            //產生一個新的檔案名稱用全球唯一識別碼 (GUID)來標識
            string newpath = String.Format(@"{0}\Excel\{1}.xls", Server.MapPath("."), filename );
            //調用的模板檔案
            FileInfo mode = new FileInfo(Server.MapPath("3.xls"));

            Excel.Application app = new Excel.Application();

            if (app == null)
            {
                return;
            }
            //app.Application.DisplayAlerts = false;
            //app.Visible = false;

            if (mode.Exists)
            {
                Object missing = System.Reflection.Missing.Value;
                Excel.Workbook tworkbook;

             
                //調用模板
                tworkbook = app.Workbooks.Open(mode.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                Excel._Worksheet tworksheet;
                tworksheet =(Excel._Worksheet ) tworkbook.Sheets [1];
                Excel.Range rng = tworksheet.get_Range("A1", Missing.Value);
                rng.Value2 = "Hello";
                rng.Interior.ColorIndex = 6; //設定Range的背景色

                //tworksheet.Cells[1, 2] = "測試";
                //tworksheet.Cells[2, 2] = "測試";
                //app.Visible = true;
                tworksheet.SaveAs(newpath, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                tworkbook.Save();
                tworksheet = null;
                tworkbook = null;
               
                app.Quit();
                app.Quit();
                app = null;
                    if (newpath  != "")
            {

                string path = newpath ;

                System.IO.FileInfo file = new System.IO.FileInfo(path);

                if (file.Exists)
                {
                    Response.Clear();
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                    Response.AddHeader("Content-Length", file.Length.ToString());
                    Response.ContentType = "application/octet-stream";
                    Response.Filter.Close();
                    Response.WriteFile(newpath  );
                    Response.End();
                }
                else
                {
                    Response.Write("This file does not exist.");
                }
            } 
                //強制對所有代進行記憶體回收
                GC.Collect();
            }

        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.