GridView匯出Excel(網頁版)

2021-07-10 16:20:36 字數 2268 閱讀 9413

1.gridview匯出所有資料至excel

如何將gridview中的資料匯出到excel?之前在網上查了資料,最近又有用到這個知識點,現在做個總結。

前台**就不貼了,直接上後台**

gridview1.bottompagerrow.visible = false;//匯出到excel表後,隱藏分頁部分

gridview1.allowpaging = false;//取消分頁,便於匯出所有資料,不然只能匯出當前頁面的幾條資料

bind();//取消分頁後重新繫結資料集,匯出所有

gridview1.columns[0].visible = false;//隱藏「單選」列

datetime dt = datetime.now;//給匯出後的excel表命名,結合表的用途以及系統時間來命名

string filename = "報修投訴" + dt.year.tostring() + dt.month.tostring() + dt.day.tostring() + dt.hour.tostring() + dt.minute.tostring() + dt.second.tostring();

/*如匯出的表中有某些列為編號、身份證號之類的純數字字串,如不進行處理,則匯出的資料會預設為數字,例如原字串"0010"則會變為數字10,字串"1245787888"則會變為科學計數法1.236+e9,這樣便達不到我們想要的結果,所以需要在匯出前對相應列新增格式化的資料型別,以下為格式化為字串型*/

foreach (gridviewrow dg in this.gridview1.rows)

response.clear();

response.addheader("content-disposition", "attachment;filename=" + system.web.httputility.urlencode(filename, system.text.encoding.utf8) + ".xls");//匯出檔案命名

response.contentencoding = system.text.encoding.utf7;//如果設定為"gb2312"則中文字元可能會亂碼

system.io.stringwriter ostringwriter = new system.io.stringwriter();

system.web.ui.htmltextwriter ohtmltextwriter = new system.web.ui.htmltextwriter(ostringwriter);

gridview1.rendercontrol(ohtmltextwriter);//add the panel into the output stream.

response.write(ostringwriter.tostring());//output the stream.

response.flush();

response.end();

gridview1.allowpaging = true;//恢復分頁

bind(); //為gridview重新繫結資料來源

這個是將gridview中所有資料(所有頁)都匯出至excel中。但會遇到以下問題

"控制項必須放在具有 runat=server 的窗體標記內"錯誤的解決方法

解決辦法:

在頁面中重寫page基類的verifyrenderinginserverform方法

public override void verifyrenderinginserverform(control control)

接著又會遇到問題如下

只能在執行 render() 的過程中呼叫 registerforeventvalidation

解決辦法:<%@ page %> 指令中加上 enableeventvalidation="false"

2.gridview匯出所選行至excel

為了解決這個問題,我編寫了乙個函式如下

public void selectdatabind()//將沒有選擇的行隱藏

else

}}

然後用 selectdatabind()來替代bind()就可以了。

注意:1.在呼叫時注意**的次序,如selectdatabind()一定要在 gridview1.columns[0].visible = false之前執行,不然找不到第一列了;

2.總結的是思想,**僅擷取部分

gridview 匯出excel 總結

protected void button1 click object sender,eventargs e private void export string filetype,string filename 如果沒有下面方法會報錯型別 gridview 的控制項 gridview1 必須放在具...

gridview 匯出excel 總結

private void export string filetype,string filename 如果沒有下面方法會報錯型別 gridview 的控制項 gridview1 必須放在具有 runat server 的窗體標記內 public override void verifyrender...

GridView匯出Excel方法

方法一 將 直接寫在頁面 資料匯出 方法二 將以上 改進成公共方法 將網格資料匯出到excel 網格名稱 如gridview1 要儲存的檔名 三 注意事項 在匯出的時候,如果某個欄位為長數字 如身份證號碼511922198507151512 以0開頭的編號 如0809111212 之類的資料。如果不...