asp.net导出excel,excel是乱码

ibilly77 2012-04-20 12:00:29
我要将gridview中的数据导出到一张excel中,但是导出后发现居然是乱码的,并且只有一行,想请问下高手们我这是什么情况

难道是excel还要先设置?

下面是我的后台代码:



using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;

namespace WebApplication5
{
public partial class outexcel : System.Web.UI.Page
{
SqlConnection sqlcon;
// SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=drop;Uid=sa;Pwd=sa123456";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();

}
}
public void bind()
{
string sqlstr = "select id,createdate from test01";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "test01");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
sqlcon.Close();
}

protected void Button1_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "name.xls");
}

private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}

}
}

...全文
340 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaofeixia__9999 2012-04-20
  • 打赏
  • 举报
回复
Response.ContentEncoding = System.Text.Encoding.UTF7;
是UTF8吧?
ibilly77 2012-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

编码问题吧
[/Quote]

我导出的文件在office03和wps中显示的就算不是乱码,但是到office07中显示为乱码,请问有什么解决方法吗?还是说03和07的导出方式是不一样的?
tan598121925 2012-04-20
  • 打赏
  • 举报
回复
编码问题吧
yanhongli123 2012-04-20
  • 打赏
  • 举报
回复
try
{
//定义文档类型、字符编码

Response.Clear();
Response.Buffer = true;

Response.Charset = "gb2312";

Charact.Charact c = new Charact.Charact();
string tempname = c.GetAllPYLetters(DropDownList3.Text) + DateTime.Now.ToString("yyyyMMdd");

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

Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

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);

box.RenderControl(oHtmlTextWriter);

//this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
Response.Write(oStringWriter.ToString());
Response.End();
}
catch
{
return;

}
k8236721 2012-04-20
  • 打赏
  • 举报
回复


CultureInfo cul;
StringWriter oStringWriter;
HtmlTextWriter oHtmlTextWriter;
string strFileName = DateTime.Now.ToString();

Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
//Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName + ".xls");
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");

Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
//Me.EnableViewState = True

cul = new CultureInfo("ZH-CN", true);
oStringWriter = new StringWriter(cul);
oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
gridview1.RenderControl(oHtmlTextWriter);//tblOrder是需要输出的表格的ID;如果是输出datagrid的内容那就替换成datagrid的ID就可以了.
Response.Write(oStringWriter.ToString());
Response.End();
insus 2012-04-20
  • 打赏
  • 举报
回复

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧