CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何将datagrid里的数据导出到excel中

楼主lilyatkm(lily)2006-06-01 16:36:36 在 .NET技术 / ASP.NET 提问

各位高手请指点:  
      我在论坛上搜索过,也发现了一些方法,可是都用不了,生成的excel里什么也没有,datagrid的数据也是绑定了的,好迷惑啊,请各位指点迷津! 问题点数:50、回复次数:11Top

1 楼Gingko_Zhang(Gingko)回复于 2006-06-01 16:46:55 得分 0

'*********************************************************************************************轉EXCEL  
                  Public   Function   table_to_excel_com(ByVal   DS   As   System.Data.DataSet)   As   Integer  
                          Dim   lab1   As   Label  
                          Dim   myOFD   As   System.Windows.Forms.SaveFileDialog   =   New   SaveFileDialog  
                          myOFD.Title   =   "create   file"  
                          myOFD.Filter   =   "excel   file|*.xls"  
   
                          If   myOFD.ShowDialog()   =   System.Windows.Forms.DialogResult.OK   Then  
   
                                  If   (File.Exists(myOFD.FileName))   Then  
                                          Dim   r   As   Integer  
                                          r   =   MessageBox.Show("已存在此文件,確定要復蓋?",   "系統提示!",   MessageBoxButtons.OKCancel,   MessageBoxIcon.Question,   MessageBoxDefaultButton.Button1)  
                                          If   r   =   0   Then  
                                                  Exit   Function  
                                          Else  
                                                  GoTo   lab1  
                                          End   If  
                                  End   If  
                          Else  
  lab1:                       Dim   myWriter   As   System.IO.StreamWriter  
                                  myWriter   =   File.CreateText(myOFD.FileName)  
                                  myWriter.Close()  
                          End   If  
   
   
                          Dim   oMissing   As   Object   =   System.Reflection.Missing.Value  
                          Dim   xlApp   As   Excel.ApplicationClass   =   New   Excel.ApplicationClass  
                          Try  
                                  '   open   excel2000  
                                  Dim   xlWorkbook   As   Excel.Workbook   =   xlApp.Workbooks.Open(myOFD.FileName,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing,   oMissing)  
   
                                  Dim   xlWorksheet   As   Excel.Worksheet  
                                  '   for   all   the   table  
   
                                  For   i   As   Integer   =   0   To   DS.Tables.Count   -   1  
   
                                          'create   a   new   sheet  
                                          xlWorksheet   =   xlWorkbook.Worksheets.Add(oMissing,   oMissing,   1,   oMissing)  
                                          '   tablename   name   the   sheet  
                                          xlWorksheet.Name   =   DS.Tables(i).TableName  
                                          'get   the   table   values   save   to   the   stringbuffer  
                                          Dim   stringBuffer   As   String   =   ""  
                                          For   j   As   Integer   =   0   To   DS.Tables(i).Rows.Count  
   
                                                  For   k   As   Integer   =   0   To   DS.Tables(i).Columns.Count   -   1  
                                                          stringBuffer   =   stringBuffer   +   DS.Tables(i).Rows(j)(k).ToString  
                                                          If   k   <   DS.Tables(i).Columns.Count   -   1   Then  
                                                                  stringBuffer   +=   "\t"  
                                                          End   If  
                                                  Next   k  
                                                  stringBuffer   +=   "\n"  
                                          Next   j  
                                          '   using   the   clipboard  
                                          System.Windows.Forms.Clipboard.SetDataObject("")  
                                          '   set   the   stringbuffer   to   the   clipboard  
                                          System.Windows.Forms.Clipboard.SetDataObject(stringBuffer)  
                                          xlWorksheet.Range(1,   1).Select()  
                                          xlWorksheet.Paste(oMissing,   oMissing)  
                                          System.Windows.Forms.Clipboard.SetDataObject("")  
                                  Next   i  
                                  '   save   and   close   excel  
                                  xlWorkbook.Close(Excel.XlSaveAction.xlSaveChanges,   oMissing,   oMissing)  
                                  System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook)  
                                  xlWorkbook   =   Nothing  
                                  Return   1  
   
                          Catch   ex   As   Exception  
                                  MessageBox.Show(ex.Message)  
                                  Return   0  
                          Finally  
   
                                  'set   free  
                                  xlApp.Quit()  
                                  System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)  
                                  xlApp   =   Nothing  
                                  GC.Collect()  
                          End   Try  
                  End   Function  
   
          End   ClassTop

2 楼hanchi8008(寒池)回复于 2006-06-01 18:06:43 得分 0

dingTop

3 楼waywander(第三只眼)回复于 2006-06-01 18:18:24 得分 0

在写入excel的激发事件用下面的代码  
   
  Response.ContentType   =   "application/vnd.ms-excel";  
  Response.Charset   =   "";  
  EnableViewState   =   false;//关闭   ViewState  
  System.IO.StringWriter   tw   =   new   System.IO.StringWriter();//将信息写入字符串  
  System.Web.UI.HtmlTextWriter   hw   =   new   System.Web.UI.HtmlTextWriter(tw);//在WEB窗体页上写出一系列连续的HTML特定字符和文本。  
  DataGrid1.RenderControl(hw);//获取control的HTML,将DATAGRID中的内容输出HtmlTextWriter对象中  
  Response.Write(tw.ToString());//   把HTML写回浏览器  
  Response.End();Top

4 楼softdeveloper(笨蛋天才)回复于 2006-06-01 18:23:34 得分 0

相比datatable,   datagrid生成excel的最简单:  
  Response.Clear();    
  Response.Buffer=   true;    
  Response.Charset="GB2312";          
  Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");    
  Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文  
  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);  
  this.DataGrid1.RenderControl(oHtmlTextWriter);    
  Response.Write(oStringWriter.ToString());  
  Response.End();  
  Top

5 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-06-01 18:25:21 得分 0

http://www.aspxboy.com/private/showthread.asp?threadid=206Top

6 楼dgrwang(探索者)回复于 2006-06-01 18:31:43 得分 0

markTop

7 楼lilyatkm(lily)回复于 2006-06-06 13:45:58 得分 0

softdeveloper(笨蛋天才)   ,我试了你的方法,可是导出来的excel文件里什么也没有。这是什么原因呢?Top

8 楼slily0210()回复于 2006-06-06 13:58:21 得分 0

我用了以上方法,为什么没有弹出下载的对话框阿~~~求助中Top

9 楼sxddr(sxddr)回复于 2006-06-06 13:58:28 得分 0

回楼上,你看看你DataGrid对象名是不是自己的,softdeveloper(笨蛋天才)   得方法应该是对的Top

10 楼lilyatkm(lily)回复于 2006-06-06 14:03:12 得分 0

DataGrid对象名是自己的了,导出得到的excel里只有一句话:线程正被终止。其余的什么也没有,怎么会这样呢?Top

11 楼slily0210()回复于 2006-06-06 14:45:09 得分 0

this.DataGrid1把这个改成自己的对吧,我用的是我自己的阿,但是就是没反应,这个会是什么原因阿?Top

相关问题

关键词

得分解答快速导航

  • 帖主:lilyatkm

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo