Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentEncoding =System.Text.Encoding.getEnconde("gb2312")试试
Response.ContentEncoding =System.Text.Encoding.getEnconde("gb2312")试试
解决方案 »
- 请问一些帮助类应该放在三层中的哪一层?
- 关于ext.net GridPanel分页问题
- GridView如何取消选中的一行
- 我对三层架构的理解,请高手指正,真时问题多多啊!!!!
- 关于这个媒体代码,谁帮我看看有什么问题!
- 为什么我的VB.net智能感知比C#的要少,比如Page.GetPostBackClientEvent等,好多在VB.NET就没有提示
- 用户控件动态创建如何传入参数,想在构造函数中传入
- 請問各位高手什么是.net
- 怎么用SqlDataSource的Select方法?在线
- 请问gridview如何添加行
- 帮忙解决一个文件夹的遍历 问题
- ASp.net中如何远程读取文件是否存在?在线等,谢谢!
{
System.Web.UI.WebControls.GridView dgExport = null;
//当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
//IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null)
{
//设置编码和附件格式
System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);//作用是方式中文文件名乱码
curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF7;
curContext.Response.Charset = "GB2312"; //导出Excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); //为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView
dgExport = new System.Web.UI.WebControls.GridView();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind(); //下载到客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
改为
Response.ContentEncoding = System.Text.Encoding.UTF8;
改成
Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.Default) + ".xls\"");
Response.ContentEncoding = System.Text.Encoding.UTF7;
设置成UTF8就不会有乱码了
#region 导出到Excel
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AddHeader("content-disposition",
"attachment;filename=MyProjectFileName.xls");
Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite =
new HtmlTextWriter(stringWrite);
G_cli1.AllowPaging = false;
G_cli1.Columns[1].Visible = false;//为什么加这句话呢
这句话的实际意思是第二列不导出 如果不加 导出是乱码 你把你不需要的一列禁了以后试试
为什么禁了一列导出就不乱码了 原因我也不清楚 仅仅是自己实践证明的!!!
Bind(); G_cli1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString());
Response.End(); G_cli1.AllowPaging = true;
Bind();
#endregion
}
public override void VerifyRenderingInServerForm(Control control)//这也必须加上
{ }