DataGrid控件的常见数据导出EXCEL技术(1)

翻译|其它|编辑:郝浩|2007-09-14 10:10:47.000|阅读 1094 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

绑定到  DataGrid  控件中的数据导出  Excel  表有几种比较常见的方式.现一一介绍.

 

方式一:直接导出,不需要任何加工.这种对那些内容只有一页,而且是纯数据不含按钮的尤其合适.

if (dgrid.Visible==false)

{

     Label5.Visible=true;   Label5.Text="您还没有确认导出的内容,请先查找";

}

else

{

     Label5.Visible=false;

     Response.Clear(); Response.Buffer=trueResponse.Charset = "gb2312";//导出中文字体

Response.AppendHeader("Content-Disposition","attachment;filename=YieldCompareForms.xls");

     Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");

     Response.ContentType="application/ms-excel";

     this.EnableViewState=false;

     //定义一个输出流

     System.IO.StringWriter Ostring=new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter ohtmlTextWrite=new System.Web.UI.HtmlTextWriter(Ostring);

//目标数据绑定到输入输出流

this.dgrid.RenderControl(ohtmlTextWrite);

Response.Write(Ostring.ToString());       Response.End();

}

 

方式二:  DataGrid  内容含有多页,但依然是纯数据的可采用此法.

Response.Clear ();

Response.Buffer = true;

 Response.Charset = "gb2312";

string tablename =Session["unique_id"].ToString();//表名以productid为名字

string str="attachment;filename="+tablename+".xls";

Response.AppendHeader("Content-Disposition",str);//与下面这句等价

//Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");

Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");

Response.ContentType = "application/ms-excel";

this.EnableViewState = false;

System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter=new System.Web.UI.HtmlTextWriter(oStringWriter);

GC.Collect ();

string strsql ="select uniqueid,testitem,testindex,result,speccount,errorcode from "+Session["projectname"].ToString()+".testiteminfo where uniqueid='"+tablename.ToString()+"' order by testindex";

string project=Session["projectname"].ToString();

OracleConnection conn=new OracleConnection(StoneFunction.neworacleconn(project));

conn.Open();

 OracleDataAdapter OracleDa=new OracleDataAdapter(strsql,conn);

DataSet ds=new DataSet();

OracleDa.Fill(ds);

DataTable dt=ds.Tables[0];

StringWriter sw=new StringWriter();

//Excel表格第一行

sw.WriteLine("Uniqueid\tTestitem\tTestindex\tResult\tSpeccount\tErrorcode");

foreach(DataRow dr in dt.Rows)

{

sw.WriteLine(dr["Uniqueid"]+"\t"+dr["testitem"]+"\t"+dr["testindex"]+"\t"+dr["result"]+"\t"+dr["speccount"]+"\t"+dr["errorcode"]);

}

sw.Close(); Response.Write(sw); Response.End();


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP