代码如下:
克服了以往导出乱码的现象
dgdBranch.AllowCustomPaging=true;
dgdBranch.PageSize=100000;
dgdBranch.CurrentPageIndex = 0;
dgdBranch.AllowSorting=false;
//在这里可以处理需要隐藏的列,比如链接性质的要隐藏起来,避免导出时出错。
//设置绑定数据
ViewState["FID"]=Request["FID"].ToString();
DataTable dtFKBill = (new PriceDataSystem()).GetFKBillDCChannel(Convert.ToInt32(ViewState["FID"]));
this.dgdBranch.DataSource=dtFKBill;
this.dgdBranch.DataBind();
//这是对系统的设置
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";//Response.Charset ="utf-8";
string filename=DateTime.Now.ToString().Replace(" ","-").Replace(":","-");
Response.AppendHeader("Content-Disposition","attachment;filename="+filename+".xls"); //FileName.xls就是要保存的excel名
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
Response.Write("<html><head><meta http-equiv=/"Content-Type/" content=/"text/html; charset=gb2312/"></head><body>"); //该语句为关键语句,必须加上,处理那种偶然的导出乱码现象
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);
//输出html格式的东西,可以不要的.
oHtmlTextWriter.Write("<center><b><font size=4>DC类渠道再分配单</font></b><br/>");
//把datagridName换成你的datagrid的id
this.dgdBranch.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
this.EnableViewState = false;
oStringWriter.Flush();
oStringWriter.Close();
oHtmlTextWriter.Flush();
oHtmlTextWriter.Close();
this.dgdBranch.AllowCustomPaging=false;
this.dgdBranch.PageSize=15;