Datagrid資料匯出到excel檔案的三種方法

2022-01-11 13:27:30 字數 2905 閱讀 3045

原文連線:

方法一:匯出到csv檔案

,存放在伺服器端任一路徑

,然後給客戶

1、可以進行身份認證

conn

"]);

sqldataadapter da=new sqldataadapter("

select * from tb1

",conn);

dataset ds=new

dataset();

da.fill(ds,

"table1

");

datatable dt=ds.tables["

table1

"];

//存放到web.config中downloadurl指定的路徑,檔案格式為當前日期+4位隨機數

downloadurl

"].tostring()+datetime.today.tostring("

yyyymmdd

")+new random(datetime.now.millisecond).next(10000).tostring()+"

.csv

";filestream fs=new

filestream(name,filemode.create,fileaccess.write);

streamwriter sw=new streamwriter(fs,system.text.encoding.getencoding("

gb2312

"));

sw.writeline(

"自動編號,姓名,年齡

");

foreach(datarow dr in

dt.rows)

sw.close();

response.addheader(

"content-disposition

", "

attachment; filename=

" +server.urlencode(name));

response.contenttype = "

";//

response.writefile(name); //

把檔案流傳送到客戶端

response.end();

方法二:匯出到csv檔案,不存放到伺服器,直接給瀏覽器輸出檔案流

conn

"]);

sqldataadapter da=new sqldataadapter("

select * from tb1

",conn);

dataset ds=new

dataset();

da.fill(ds,

"table1

");

datatable dt=ds.tables["

table1

"];

stringwriter sw=new

stringwriter();

sw.writeline(

"自動編號,姓名,年齡

");

foreach(datarow dr in

dt.rows)

sw.close();

response.addheader(

"content-disposition

", "

attachment; filename=test.csv

");

response.contenttype = "";

response.contentencoding=system.text.encoding.getencoding("

gb2312

");

response.write(sw);

response.end();

對方法一,二補充一點,如果你希望匯出的是xls檔案分隔符用\t就可以了,不要用逗號

另外,修改輸出的擴充套件名為xls即可。

response.clear(); 

response.buffer= false

; response.charset="

gb2312";

"content-disposition

","attachment;filename=test.xls

");

response.contentencoding=system.text.encoding.getencoding("

gb2312

"); response.contenttype = "

"; this.enableviewstate = false

; system.io.stringwriter ostringwriter = new

system.io.stringwriter();

system.web.ui.htmltextwriter ohtmltextwriter = new

system.web.ui.htmltextwriter(ostringwriter);

this

.datagrid1.rendercontrol(ohtmltextwriter);

response.write(ostringwriter.tostring());

response.end();

在這裡說明一點:有的網友反映**出現「沒有dr["id"]」之類的錯誤,這個**是按照我的資料結構來寫的,到時候相關的字段要換成你自己的才是。

還有就是如果檔名需要中文的話,這麼修改response.addheader("content-disposition", "attachment; filename="+system.web.httputility.urlencode("中文",system.text.encoding.utf8)+".xls");

datagrid匯出到excel範例

優點 3 csv檔案是文字檔案,逗號隔開字段,回車隔開行,易於資料匯入匯出。實現方法 sqldataadapter da new sqldataadapter select from tb1 conn dataset ds new dataset da.fill ds,table1 datatabl...

資料匯出到excel

一 加上表頭後變成亂碼 要匯出的datatable 型別 excel的檔名 匯出的檔案中不帶表頭 二 使用wps開啟正常 匯出到excel 已經實現效果 資料表 檔名 列名 需要查詢幾列 else else resp.write ls item resp.write resp.end 三 目前用著感...

把指定的DataSet中的內容匯出到Excel中

把指定的dataset中的內容匯出到excel中.ds引數為dateset物件 該字串用來指定一些欄位來匯出,其使用格式為 aaa aaa,bbb bbb 小寫字串為在excel表中顯示該字段的列標題,大寫表示欄位名.不同字段使用逗號分隔.資料匯出到excel中的開始行 資料匯出到excel中的開始...