程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#將數據導出到Execl匯總(1)

C#將數據導出到Execl匯總(1)

編輯:關於C語言

一、ASP.Net中導出Execl的方法:

在ASP.Net中導出Execl有兩種方法,一種是將導出的文件存放在服務器某個文件夾下面,然後將文件地址輸出在浏覽器上;一種是將文件直接將文件輸出流寫給浏覽器。在Response輸出時,t分隔的數據,導出execl時,等價於分列,n等價於換行。

1、將整個Html全部輸出execl

此法將Html中所有的內容,如按鈕,表格,圖片等全部輸出到Execl中。

Response.Clear();
Response.Buffer=  true;
Response.AppendHeader("Content-Disposition","attachment;filename="+DateTime.Now.ToString("yyyyMMdd")+".xls");
Response.ContentEncoding=System.Text.Encoding.UTF8;
Response.ContentType  =  "application/vnd.ms-Excel";
this.EnableVIEwState  =  false;

這裡我們利用了ContentType屬性,它默認的屬性為text/html,這時將輸出為超文本,即我們常見的網頁格式到客戶端,如果改為ms-excel將將輸出Excel格式,也就是說以電子表格的格式輸出到客戶端,這時浏覽器將提示你下載保存。ContentType的屬性還包括:image/JPEG;text/Html;image/GIF;vnd.ms-Excel/msword 。同理,我們也可以輸出(導出)圖片、Word文檔等。下面的方法,也均用了這個屬性。

2、將DataGrid控件中的數據導出Execl

上述方法雖然實現了導出的功能,但同時把按鈕、分頁框等Html中的所有輸出信息導了進去。而我們一般要導出的是數據,DataGrid控件上的數據。

System.Web.UI.Control ctl=this.DataGrid1;
//DataGrid1是你在窗體中拖放的控件
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-Excel";
ctl.Page.EnableVIEwState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();

如果你的DataGrid用了分頁,它導出的是當前頁的信息,也就是它導出的是DataGrid中顯示的信息。而不是你select語句的全部信息。

為方便使用,寫成方法如下:

public void DGToExcel(System.Web.UI.Control ctl) 
{
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-Excel";
ctl.Page.EnableVIEwState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}

用法:DGToExcel(datagrid1);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved