datagrid匯出到excel範例

2021-04-12 16:42:01 字數 2539 閱讀 7656

優點:    

3、csv檔案是文字檔案,逗號隔開字段,回車隔開行,易於資料匯入匯出。    

實現方法:    

sqldataadapter   da=new   sqldataadapter("select   *   from   tb1",conn);    

dataset   ds=new   dataset();    

da.fill(ds,"table1");    

datatable   dt=ds.tables["table1"];    

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.writefile(name);   //   把檔案流傳送到客戶端    

response.end();    

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

優點:    

1、隨時生成,不需要占用資源    

2、可以結合身份認證    

3、同樣利於資料交換    

實現方法:    

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.contentencoding=system.text.encoding.getencoding("gb2312");    

response.write(sw);    

response.end();    

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

**修改如下:    

sw.writeline("自動編號/t姓名/t年齡");    

foreach(datarow   dr   in   dt.rows)    

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

優點:    

1、有固定的格式,樣子好看(datagrid的樣子)    

侷限性:    

1、不適合資料交換,裡面有html**,比較亂,沒有固定格式    

2、datagrid不能有分頁、排序等,否則出錯    

實現方法:    

response.clear();    

response.buffer=   false;    

response.charset="gb2312";    

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();    

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

從 DataGridView 匯出到 Excel

public sub exporttoexcel byval datagridview1 as datagridview if datagridview1.rows.count 1 then for i 0 to datagridview1.columncount 1 生成excel中列頭名稱 my...

wpf datagrid資料 匯出到excel

public static void exporttoexcel datagrid datagridview1,string sheetname 不允許datagridview顯示新增行,負責匯出時會報最後一行未例項化錯誤 false hssfworkbook workbook new hssfwo...

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

原文連線 方法一 匯出到csv檔案 存放在伺服器端任一路徑 然後給客戶 1 可以進行身份認證 conn sqldataadapter da new sqldataadapter select from tb1 conn dataset ds new dataset da.fill ds,table1...