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

把DataGrid里面的数据导出到Excel文件时出错!非常紧急!高手们救命啊!分不够可以再加!

楼主sunnyBelt(一蓑烟雨)2005-08-01 11:43:41 在 .NET技术 / C# 提问

使用SQL语句读取数据并赋给Datagrid控件,读取下表里面的所有列:  
  CREATE   TABLE   [dbo].[Table1]   (  
  [Columns01]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,  
  [Columns02]   [char]   (13)   NULL,  
  [Columns03]   [char]   (10)   NULL,  
  [Columns04]   [char]   (6)   NULL,  
  [Columns05]   [nchar]   (50)   NULL,  
  [Columns06]   [char]   (9)   NULL,  
  [Columns07]   [char]   (3)   NULL,  
  [Columns08]   [char]   (3)   NULL,  
  [Columns09]   [nchar]   NULL,  
  [Columns10]   [int]   NULL   ,  
  [Columns11]   [bit]   NULL   ,  
  [Columns12]   [datetime]   NULL   ,  
  [Columns13]   [char]   (10)   NULL   ,  
  [Columns14]   [datetime]   NULL   ,  
  [Columns15]   [char]   (5)   NULL   ,  
  [Columns16]   [bit]   NULL    
  )   。  
   
  当数据少时没有任何问题,一旦行数多于4160时再导出就会提示输入用户名和密码,输入Windows的用户名和密码后就会显示:“The   page   can't   be   displyed”,错误的原因是:“Cannot   find   server   or   DNS   Error“。  
   
  导出Excel的代码如下:  
   
  string   HeadText,Content;  
  HeadText="";  
  for(int   i=0;i<DG20.Columns.Count;i++)  
  {  
  HeadText+=DG20.Columns[i].HeaderText+" ";  
  }  
  StringWriter   sw=new   StringWriter();  
  sw.WriteLine(HeadText);  
  foreach(DataGridItem   di   in   DG20.Items)  
  {  
  Content="";  
  for(int   i=0;i<DG20.Columns.Count;i++)  
  {  
  Content+=di.Cells[i].Text.Trim()+" ";  
  }  
  sw.WriteLine(Content);  
  }  
   
  HttpContext.Current.Response.AddHeader("Content-Disposition",   "attachment;   filename=test.xls");    
  HttpContext.Current.Response.ContentType   =   "application/ms-excel";    
  HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");    
  HttpContext.Current.Response.Write(sw);    
  HttpContext.Current.Response.End();    
   
  请问这是什么问题啊!  
   
  非常紧急!高手们救命啊! 问题点数:50、回复次数:3Top

1 楼silverseven7(就差100 分就升级,多给我点吧)回复于 2005-08-01 11:54:36 得分 50

string   strFileName =   "DailyCurrency"+this.radioType.SelectedItem.Value;  
   
  this.Response.Clear();  
  this.Response.BufferOutput =   true;  
  this.Response.Charset="windows-1252";  
   
  //Add   Header   File  
  this.Response.ContentEncoding   =   System.Text.Encoding.GetEncoding("windows-1252");  
   
  this.Response.AppendHeader("Content-Type",   "application/ms-excel");  
   
  this.Response.AppendHeader("Content-Disposition","attachment;filename="+strFileName);    
   
  StringWriter   oStringWriter   =   new   System.IO.StringWriter();  
  HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);  
  this.dg_Dest.RenderControl(oHtmlTextWriter);  
  this.Response.Write(oStringWriter.ToString());    
   
  this.Response.Flush();Top

2 楼silverseven7(就差100 分就升级,多给我点吧)回复于 2005-08-01 11:55:05 得分 0

string   strFileName =   "DailyCurrency"+this.radioType.SelectedItem.Value;  
   
  Response.Clear();    
  Response.Buffer=   true;    
  Response.Charset="windows-1252";          
  Response.AppendHeader("Content-Disposition","attachment;filename="+strFileName);    
  Response.ContentEncoding=System.Text.Encoding.GetEncoding("windows-1252");  
  Response.ContentType   =   "application/ms-text";  
  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);  
   
  DataSet   dsBind   =   (DataSet)this.Session["mod_ApproveDown"];  
   
  DataTable   dt   =   dsBind.Tables[0];  
  System.Text.StringBuilder   myString=new   System.Text.StringBuilder();  
   
  myString.Append("\r\n");  
   
  myString.Append("cmpy                       exch_date             curr_code             old_exch_rate     new_exch_rate     ");  
   
  myString.Append("\r\n");  
  myString.Append("\r\n");  
   
  foreach(DataRow   dgRow   in   dt.Rows)  
  {  
  for(int   i=0;i<dgRow.ItemArray.Length;i++)  
  {  
  if(dgRow[i]!=null)  
  {  
  myString.Append(dgRow[i].ToString().PadRight(15,'   '));  
  }  
   
  }  
  myString.Append("\r\n");  
  }  
  myString.Append("\r\n");  
  myString.Append("\r\n");  
  TextBox   myTextBox=new   TextBox();  
  myTextBox.TextMode=System.Web.UI.WebControls.TextBoxMode.MultiLine;  
  myTextBox.Text=myString.ToString();  
  myTextBox.RenderControl(oHtmlTextWriter);  
   
  System.Text.RegularExpressions.Regex   htmlRegex   =   new   System.Text.RegularExpressions.Regex("<[^>]*>");  
   
  Response.Write(htmlRegex.Replace(oStringWriter.ToString(),""));Top

3 楼sunnyBelt(一蓑烟雨)回复于 2005-08-01 12:22:48 得分 0

silverseven7,用你的第一段代码,当数据多于4200行是不会出错但是却没有任何的输出。  
   
  有没有哪位高人知道这是为什么出错阿?Top

相关问题

  • datagrid导出数据到excel出错,大家帮忙分析一下
  • datagrid导出到excel?
  • datagrid 导出到 excel
  • Datagrid导出到Excel
  • 导出EXCEL文件出错,请指教!
  • 第二次导出到EXCEL时出错!!!
  • 导出EXCEL时,遇到DataGrid包含有Checkbox时会出错,该怎么办呢?(没有Checkbox就不会)
  • Datagrid导出Excel 的问题
  • DataGrid导出Excel的问题
  • DataGrid导出Excel出问题

关键词

  • 数据
  • null
  • 导出
  • 出错
  • columns
  • 没有
  • char

得分解答快速导航

  • 帖主:sunnyBelt
  • silverseven7

相关链接

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

广告也精彩

反馈

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