Asp.net中使用以下程式碼匯出Excel表格(轉)
private void ExportExcelFromDataGrid
( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader ("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.Default;//設定輸出流為簡體中文
Response.ContentType = "application/ms-excel";//設定輸出檔案型別為excel檔案。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
private void Button4_Click(object sender, System.EventArgs e)
...{
this.Panel1.Visible = false;
string filename = "內訓師.xls";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *
this.DataGrid1.AllowSorting = false; // *
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1; // *
this.BindGrid();
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
}
}
原理是利用DataGrid(其實是其父類Control)的RenderControl方法輸出,整個DataGrid的外觀時,將這些HTML程式碼寫入到緩衝區,同時設定一下 ContentType ,讓Excel自己的自動糾錯功能將這個輸出存為一個Excel檔案。
很多網上的朋友使用了以上這種可貼上性強的程式碼,發現不好用,反映的錯誤類似:
“LinkButton必須放在一個具有runat=server的標籤的Form”之類的話,而更多的網友說:
問題很明顯,因為DataGrid沒有放在runat=server 的Form裡面,加上就可以了。[@more@]
( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader ("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.Default;//設定輸出流為簡體中文
Response.ContentType = "application/ms-excel";//設定輸出檔案型別為excel檔案。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
private void Button4_Click(object sender, System.EventArgs e)
...{
this.Panel1.Visible = false;
string filename = "內訓師.xls";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *
this.DataGrid1.AllowSorting = false; // *
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1; // *
this.BindGrid();
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
}
}
原理是利用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js匯出Excel表格JSExcel
- vue匯出Excel表格VueExcel
- vue + element + 匯入、匯出excel表格VueExcel
- VUE中使用vue-json-excel超級方便匯出excel表格資料VueJSONExcel
- Asp.net 匯出ExcelASP.NETExcel
- vue+elementUI表格匯出excelVueUIExcel
- vue將表格匯出為excelVueExcel
- Vue實現匯出excel表格VueExcel
- 資料匯出為excel表格Excel
- 騰訊文件怎樣匯出excel表格 騰訊文件如何匯出excelExcel
- element-UI庫Table表格匯出Excel表格UIExcel
- ASP.NET Excel匯入和匯出ASP.NETExcel
- asp.net Excel匯出方法ASP.NETExcel
- poi 匯出Excel java程式碼ExcelJava
- vue匯出excel資料表格功能VueExcel
- vue實現前端匯出excel表格Vue前端Excel
- springboot poi匯出excel表格Spring BootExcel
- 前端常用方法之匯出excel表格前端Excel
- PHP匯出大量資料到excel表格PHPExcel
- Element-ui元件庫Table表格匯出Excel表格UI元件Excel
- vb用陣列方式快速匯出MSFlexGrid表格資料到Excel表格中陣列FlexExcel
- Vue匯出資料到Excel電子表格VueExcel
- vue2.0 匯出Excel表格資料VueExcel
- JS匯出Excel 程式碼筆記JSExcel筆記
- 將表格資料匯入Excel表程式碼例項Excel
- element-ui匯出excel表格,程式碼基於vue-element-admin-masterUIExcelVueAST
- vue+elementUI el-table匯出excel表格VueUIExcel
- node 抓取api資料匯出為excel表格APIExcel
- vue匯出excel表格步驟以及易出錯點VueExcel
- 轉java操作excel匯入匯出JavaExcel
- ASP.NET EXCEL資料的匯出和匯入ASP.NETExcel
- 怪獸級效能,用程式碼玩轉Excel!葡萄城強勢釋出Spread表格元件Excel元件
- 將資料庫中資料匯出為excel表格資料庫Excel
- php如何將資料匯出成excel表格呢?PHPExcel
- vue+element將資料匯出成excel表格VueExcel
- java 匯入到EXCEL表格JavaExcel
- excel表格生成與匯入Excel
- asp.net 利用NPOI匯出Excel通用類ASP.NETExcel