Asp.net中使用以下程式碼匯出Excel表格(轉)

heying1229發表於2007-07-17
private void ExportExcelFromDataGrid
Asp.net中使用以下程式碼匯出Excel表格(轉) (
string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
Asp.net中使用以下程式碼匯出Excel表格(轉)Asp.net中使用以下程式碼匯出Excel表格(轉)
{
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.Clear();
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.Buffer
= true;
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.Charset
="utf-8";
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.AppendHeaderAsp.net中使用以下程式碼匯出Excel表格(轉) (
"Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.ContentEncoding
=System.Text.Encoding.Default;//設定輸出流為簡體中文
Asp.net中使用以下程式碼匯出Excel表格(轉)
Response.ContentType = "application/ms-excel";//設定輸出檔案型別為excel檔案。
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.EnableViewState = false;
Asp.net中使用以下程式碼匯出Excel表格(轉) System.Globalization.CultureInfo myCItrad
= new System.Globalization.CultureInfo("ZH-CN",true);
Asp.net中使用以下程式碼匯出Excel表格(轉) System.IO.StringWriter oStringWriter
= new System.IO.StringWriter(myCItrad);
Asp.net中使用以下程式碼匯出Excel表格(轉) System.Web.UI.HtmlTextWriter oHtmlTextWriter
=
Asp.net中使用以下程式碼匯出Excel表格(轉)
new System.Web.UI.HtmlTextWriter(oStringWriter);
Asp.net中使用以下程式碼匯出Excel表格(轉) ToExcelGrid.RenderControl(oHtmlTextWriter);
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.Write(oStringWriter.ToString());
Asp.net中使用以下程式碼匯出Excel表格(轉) Response.End();
Asp.net中使用以下程式碼匯出Excel表格(轉) }

Asp.net中使用以下程式碼匯出Excel表格(轉)
Asp.net中使用以下程式碼匯出Excel表格(轉)
private void Button4_Click(object sender, System.EventArgs e)
Asp.net中使用以下程式碼匯出Excel表格(轉)Asp.net中使用以下程式碼匯出Excel表格(轉)
{
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.Panel1.Visible = false;
Asp.net中使用以下程式碼匯出Excel表格(轉)
string filename = "內訓師.xls";
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.DataGrid1.Columns[6].Visible = true;
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.DataGrid1.Columns[7].Visible = true;
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false;
// *
Asp.net中使用以下程式碼匯出Excel表格(轉) this.DataGrid1.AllowSorting = false; // *
Asp.net中使用以下程式碼匯出Excel表格(轉) this.DataGrid1.AllowPaging = false;
Asp.net中使用以下程式碼匯出Excel表格(轉) this.DataGrid1.SelectedIndex = -1; // *
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.BindGrid();
Asp.net中使用以下程式碼匯出Excel表格(轉)
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
Asp.net中使用以下程式碼匯出Excel表格(轉) }

Asp.net中使用以下程式碼匯出Excel表格(轉) }

原理是利用DataGrid(其實是其父類Control)的RenderControl方法輸出,整個DataGrid的外觀時,將這些HTML程式碼寫入到緩衝區,同時設定一下 ContentType ,讓Excel自己的自動糾錯功能將這個輸出存為一個Excel檔案。

很多網上的朋友使用了以上這種可貼上性強的程式碼,發現不好用,反映的錯誤類似:
“LinkButton必須放在一個具有runat=server的標籤的Form”之類的話,而更多的網友說:
問題很明顯,因為DataGrid沒有放在runat=server 的Form裡面,加上就可以了。[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-926874/,如需轉載,請註明出處,否則將追究法律責任。

相關文章