ASP.NET 2.0中將 GridView 導出到 Excel 文件中
<% @ Page Language = " C# " EnableEventValidation = " false " %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< script runat ="server" >
ICollection CreateDataSource( )
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add( new System.Data.DataColumn( " id " , typeof (Int32)));
dt.Columns.Add( new System.Data.DataColumn( " PkID " , typeof (string)));
dt.Columns.Add( new System.Data.DataColumn( " Title " , typeof (string)));
for ( int i = 0 ; i < 6 ; i ++ )
{
dr = dt.NewRow();
dr[ 0 ] = i;
dr[ 1 ] = " 123456789123456789123456789 " ;
dr[ 2 ] = " <a href='http://dotnet.aspx.cc/'>歡迎光臨【孟憲會之精彩世界】</a> " ;
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
return dv;
}
protected void Page_Load( object sender, EventArgs e )
{
if ( ! IsPostBack)
{
GridView1.BorderWidth = Unit.Pixel( 2 );
GridView1.BorderColor = System.Drawing.Color.DarkOrange;
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
}
protected void Button1_Click( object sender, System.EventArgs e )
{
Response.Clear();
Response.Buffer = true ;
Response.Charset = " GB2312 " ;
Response.AppendHeader( " Content-Disposition " , " attachment;filename=FileName.xls " );
// 如果設置爲 GetEncoding("GB2312");導出的文件將會出現亂碼!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = " application/ms-excel " ; // 設置輸出文件類型爲excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this .GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
public override void VerifyRenderingInServerForm( Control control )
{ }
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[ 1 ].Attributes.Add( " style " , " vnd.ms-excel.numberformat:@; " );
}
}
</ script >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 將 GridView 導出到 Excel 文件中 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< asp:GridView ID ="GridView1" runat ="server" OnRowDataBound ="GridView1_RowDataBound"
AutoGenerateColumns ="false" >
< Columns >
< asp:BoundField HeaderText ="序號" DataField ="id" />
< asp:BoundField HeaderText ="身份證號" DataField ="PkID" />
< asp:BoundField HeaderText ="網址" DataField ="Title" ReadOnly ="true" HtmlEncode ="false" />
</ Columns >
</ asp:GridView >
< asp:Literal ID ="HiddenOut" runat ="server" />
< asp:Button ID ="Button1" runat ="server" Text ="導出" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< script runat ="server" >
ICollection CreateDataSource( )
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add( new System.Data.DataColumn( " id " , typeof (Int32)));
dt.Columns.Add( new System.Data.DataColumn( " PkID " , typeof (string)));
dt.Columns.Add( new System.Data.DataColumn( " Title " , typeof (string)));
for ( int i = 0 ; i < 6 ; i ++ )
{
dr = dt.NewRow();
dr[ 0 ] = i;
dr[ 1 ] = " 123456789123456789123456789 " ;
dr[ 2 ] = " <a href='http://dotnet.aspx.cc/'>歡迎光臨【孟憲會之精彩世界】</a> " ;
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
return dv;
}
protected void Page_Load( object sender, EventArgs e )
{
if ( ! IsPostBack)
{
GridView1.BorderWidth = Unit.Pixel( 2 );
GridView1.BorderColor = System.Drawing.Color.DarkOrange;
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
}
protected void Button1_Click( object sender, System.EventArgs e )
{
Response.Clear();
Response.Buffer = true ;
Response.Charset = " GB2312 " ;
Response.AppendHeader( " Content-Disposition " , " attachment;filename=FileName.xls " );
// 如果設置爲 GetEncoding("GB2312");導出的文件將會出現亂碼!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = " application/ms-excel " ; // 設置輸出文件類型爲excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this .GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
public override void VerifyRenderingInServerForm( Control control )
{ }
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[ 1 ].Attributes.Add( " style " , " vnd.ms-excel.numberformat:@; " );
}
}
</ script >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 將 GridView 導出到 Excel 文件中 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< asp:GridView ID ="GridView1" runat ="server" OnRowDataBound ="GridView1_RowDataBound"
AutoGenerateColumns ="false" >
< Columns >
< asp:BoundField HeaderText ="序號" DataField ="id" />
< asp:BoundField HeaderText ="身份證號" DataField ="PkID" />
< asp:BoundField HeaderText ="網址" DataField ="Title" ReadOnly ="true" HtmlEncode ="false" />
</ Columns >
</ asp:GridView >
< asp:Literal ID ="HiddenOut" runat ="server" />
< asp:Button ID ="Button1" runat ="server" Text ="導出" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.