GridView匯入至EXCEL
- //注:在.aspx檔案中第一行中加入EnableEventValidation="false"
- "C#" AutoEventWireup="true" CodeFile="CardSelect.aspx.cs" Inherits="PersonMag" EnableEventValidation="false" %>
- //這裡一定要引入名稱空間
- using System.Data.SqlClient;
- //為匯入Excel引入名稱空間
- using System.Drawing;
- using System.IO;
- using System.Text;
- private void GridViewBind()
- {
- //GridView的繫結
- }
- private void Export(string FileType, string FileName)
- {
- //GridView匯出到Excel,匯出所有頁
- Response.Charset = "GB2312";
- Response.ContentEncoding = System.Text.Encoding.UTF8;//換成UTF7編碼出現亂碼
- Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8).ToString());
- Response.ContentType = FileType;
- this.EnableViewState = false;
- StringWriter tw = new StringWriter();
- HtmlTextWriter hw = new HtmlTextWriter(tw);
- this.GridView1.AllowPaging = false;//取消分頁
- this.GridView1.AllowSorting = false;//取消排序
- //this.GridView1.AutoGenerateColumns = true;//取消自動生成列
- this.GridViewBind();//GridView的獨立繫結函式
- GridView1.RenderControl(hw);
- Response.Write(tw.ToString());
- Response.End();
- }
- protected void btnSqlToExcel_Click(object sender, EventArgs e)
- {
- //SqlToExcel按鈕響應的事件
- Export("application/ms-excel", "資訊表.xls");//第一個引數是匯出的型別,第二個引數是匯出表的名稱
- }
- public override void VerifyRenderingInServerForm(Control control)
- {
- //重寫此方法,確保程式執行時,指定的GridView控制元件總是位於
- //base.VerifyRenderingInServerForm(control);
- }
方案二:
- public void CreateExcel(DataSet ds, string FileName)
- {
- StringBuilder sb = new StringBuilder();
- StringBuilder sbb = new StringBuilder();
- HttpResponse resp;
- resp = Page.Response;
- resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
- resp.ContentType = "application/ms-excel";
- resp.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
- this.EnableViewState = false;
- string colHeaders = "", Is_item = "";
- int i = 0;
- //定義表物件與行物件,同時使用DataSet對其值進行初始化
- DataTable dt = ds.Tables[0];
- DataRow[] myRow = dt.Select("");
- //取得資料表各列標題,標題之間以\t分割,最後一個列標題後加回車符
- colHeaders += "
";
");- colHeaders += "
\" mce_style="\""font-weight: bold; white-space: nowrap;\">"; ";- for (i = 0; i
- {
- colHeaders += "
" + dt.Columns[i].Caption.ToString() + " ";- }
- colHeaders += "
- resp.Write(colHeaders);
- //逐行處理資料
- foreach (DataRow row in myRow)
- {
- Is_item += "
"; ";- //在當前行中,逐列取得資料,資料之間以\t分割,結束時加回車符\n
- for (i = 0; i
- {
- if (dt.Columns[i].ColumnName.Equals("銀行帳號") || dt.Columns[i].ColumnName.Equals("身份證號"))
- Is_item += "
\" mce_style="\""vnd.ms-excel.numberformat:@\">" + row[i].ToString() + " ";- else
- Is_item += "
" + row[i].ToString() + " ";- }
- Is_item += "
- resp.Write(Is_item);
- Is_item = "";
- }
- resp.Write("
- colHeaders += "
- //寫緩衝區中的資料到HTTP標頭檔案中
- resp.End();
- }
在實現"將GridView中的資料匯出到Excel中"的時候出現瞭如下錯誤:
使用者程式碼未處理 InvalidOperationException
只能在執行 Render() 的過程中呼叫 RegisterForEventValidation;
EnableEventValidation屬性是 .NET Framework 2.0 中是新增的屬性,預設的情況下該屬性的值為true;通過這個新增的功能ASP.NET會檢查 POST方法中的所帶的引數,如果認為不合法,就會丟擲異常。這個設計的目的是為了防止惡意使用者利用post 方法傳送一些惡意資料,但是有時也會出現類似上面的錯誤。只能在執行 Render() 的過程中呼叫 RegisterForEventValidation;
只要禁止這個功能,問題就能得到解決。可以通過以下兩種途徑解決:
1、在Web.Config檔案中:在 標記中新增如下程式碼:
2、在具體的.aspx頁面的原始碼中修改程式碼,如下:
EnableEventValidation="false" AutoEventWireup="true" CodeFile="GridView_Export_Excel.aspx.cs" Inherits="GridView_Export_Excel" %>
1、在Web.Config檔案中:在
2、在具體的.aspx頁面的原始碼中修改程式碼,如下:
EnableEventValidation="false" AutoEventWireup="true" CodeFile="GridView_Export_Excel.aspx.cs" Inherits="GridView_Export_Excel" %>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608859/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用GridView匯入匯出Excel,並列印GridViewViewExcel
- DevExpress GridView匯入匯出ExceldevExpressViewExcel
- 通過GridView匯出ExcelViewExcel
- 將Excel中的資料匯入至MsSQLSERVER中(示例) (轉)ExcelSQLServer
- vue excel匯入匯出VueExcel
- excel匯入工具Excel
- Angular Excel 匯入與匯出AngularExcel
- Excel匯入匯出神器(Java)ExcelJava
- C# asp.net 把GridView資料 匯出到 ExcelC#ASP.NETViewExcel
- Maatwebsite\Excel匯入用法WebExcel
- C#匯入EXCELC#Excel
- 匯入excel檔案Excel
- maatwebsite/excel": "^3.1 匯入excel 問題WebExcel
- kxcel, 方便匯入和匯出 ExcelExcel
- vue + element + 匯入、匯出excel表格VueExcel
- 轉java操作excel匯入匯出JavaExcel
- maatwebsite/excel3.1 匯入Excel詳解WebExcel
- Excel 表匯入資料Excel
- Laravel box/spout 匯入 ExcelLaravelExcel
- Oracle 資料匯入ExcelOracleExcel
- java 匯入到EXCEL表格JavaExcel
- 文字按列匯入excelExcel
- excel表格生成與匯入Excel
- excel 表匯入到mysqlExcelMySql
- 從Excel匯入sql serverExcelSQLServer
- Vue + Element 實現匯入匯出ExcelVueExcel
- EasyPoi, Excel資料的匯入匯出Excel
- java讀取Excel匯入匯出工具JavaExcel
- java 匯入匯出Excel工具類ExcelUtilJavaExcel
- ASP.NET Excel匯入和匯出ASP.NETExcel
- 如何使用 JavaScript 匯入和匯出 ExcelJavaScriptExcel
- 【輪子】EasyExcel,簡易版匯入、匯入 Excel、CSVExcel
- 前端實現Excel匯入和匯出功能前端Excel
- excel的匯入與匯出---通用版Excel
- NPOI匯出和匯入Excel,Word和PDFExcel
- Java之POI操作Excel表-匯入匯出JavaExcel
- EasyExcel完成excel檔案的匯入匯出Excel
- (轉)excel和sql server的匯入匯出ExcelSQLServer