Gridview 分多頁時匯出excel的解決方案

2022-03-24 03:07:52 字數 2114 閱讀 8672

在開發會遇到將gridview中的資料匯入到excel 這樣的需求,當girdview有多頁資料時按照一般的方式匯出的資料只可能是當前頁的資料,後幾頁的資料還在資料庫內,沒有呈現到頁面上,傳統的方式是將標記字元和文字寫入到 asp.net 伺服器控制項輸出流,沒有呈現的頁面不可能輸出到excel中。下面提供一種解決方式將所以資料都能匯入到excel中。

這一步沒有固定的**,可以在使用者查詢的時候用viewstate記錄查詢條件,例如

ordermng.orderlist_getsuporderlist_binddata( param, fdynamicparam, pageparambycus, dystr);(查詢出單頁的資料繫結到girdview)

viewstate["gparam"] = param; viewstate["dparam"] = fdynamicparam; viewstate["pageparam"] = pageparambycus; viewstate["strparam"] = dystr;(記錄查詢條件)

hashtable gparam = (hashtable)viewstate["gparam"];

hashtable dparam = (hashtable)viewstate["dparam"]; 

hashtable pageparam= (hashtable)viewstate["pageparam"];

string strparam=viewstate["strparam"].tostring();

是將開始查詢的條件轉化回來

datatable  dt = ordermng.orderlist_getsuporderlist(gparam, dparam, pageparam, strparam);

相同的條件查詢後到datatable

第二步:處理datatable , 修改列名,排序,修改顯示的內容

**1protected

void

datatabletranfer(datatable dt)213

else

1417}18

row[

"商品名稱"]

="id[:"+

row[

"productid"]

+"]"

+row[

"productname"];

19//

ischeckoutk是頁面上判斷的方法

20row[

"結算狀態"]

=ischeckout(row[

"checkoutid

"], row[

"isrepeal

"]);

2122

23//

修改列名

24dt.columns[

"orderid

"].columnname ="

訂單號";25

dt.columns[

"buytime

"].columnname ="

交易日期";

26dt.columns[

"buycount

"].columnname ="

我的銷售數量";

27//

排序列

28dt.columns[

"訂單號

"].setordinal(0);

29dt.columns["型別

"].setordinal(1);

30dt.columns[

"交易日期

"].setordinal(2);

31//

移除列

32dt.columns.remove(dt.columns[

"totalsize

"]);

33dt.columns.remove(dt.columns[

"rownum

"]);

3435

}第三步:將datatable轉化成excel

**public

static

void

tabletoexcel(datatable tb,

string

filename)

}

帶母版頁的GRIDVIEW匯出到EXCEL方法

stringwriter sw new stringwriter htmltextwriter htw new htmltextwriter sw gridview1.rendercontrol htw response.write sw.tostring response.end gridview...

GridView匯出資料到Excel時格式設定

一 excel的格式 1 文字 vnd.ms excel.numberformat 2 日期 vnd.ms excel.numberformat yyyy mm dd 3 數字 vnd.ms excel.numberformat 0.00 4 貨幣 vnd.ms excel.numberformat...

GridView使用自定義表頭和匯出到Excel

如上圖 檢視列 是靜態新增上的,表頭和資料則是動態新增的。如下 using system using system.data using system.configuration using system.collections using system.web using system.web.s...