国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于Asp.net中使用以下代碼導出Excel表格的問題

2019-11-18 16:58:33
字體:
來源:轉載
供稿:網友

 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里面,加上就可以了。

我認為,這種回答是很不準確的,理由如下:

通常使用這種代碼的人他/她的DataGrid,最起碼已經能用了,所以必定放在那個具有runat=server 的form標簽里了。
報錯是LinkButton,而不是DataGrid,很多細心的朋友很可能會說,我一直在用DataGrid,LinkButton在哪里來的。
其實真正的問題是,上面的代碼沒有加了 // * 的那幾行代碼引起的。
當然如果你的DataGrid,沒有排序,沒有使用那種按鈕列的話,是不會出問題的。
言歸正傳,LinkButtion其實是你將DataGrid設為可排序時候,的表頭包含的,所以我要將DataGrid的排序設為False。
同樣得到上面的其實,那些按鈕列,什么"編輯"、“刪除”等等這些,也是用了LinkButton,把他設為不可見就是了。
其實說得再明白一點就是,將有可能產生LinkButton,或其他控件的東西都不讓它輸出就是了

http://m.survivalescaperooms.com/killkill/archive/2006/09/21/510289.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 封开县| 金门县| 温宿县| 望江县| 邵阳县| 云阳县| 福贡县| 万载县| 宝丰县| 信丰县| 庄河市| 安多县| 富锦市| 亚东县| 连云港市| 霞浦县| 金昌市| 白城市| 平罗县| 东光县| 五莲县| 隆回县| 东乡县| 景洪市| 新宁县| 曲麻莱县| 大埔县| 吴忠市| 内丘县| 津市市| 灵山县| 柯坪县| 左权县| 漳浦县| 淮南市| 秦皇岛市| 都江堰市| 张家港市| 久治县| 重庆市| 澎湖县|