C#导出Excel,sheet名称为中文时变成乱码 怎么解决

时间:2022-09-25 14:48:56
代码如下:

 string filename = "单位统计结果";
Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls\"");

请各位帮帮忙啊

14 个解决方案

#1


该回复于2012-02-05 13:11:32被版主删除

#2


response.HeaderEncoding = System.Text.Encoding.Default;
response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ".xls");

#3


注意编码,多试几种编码。

#4


string filename = N"单位统计结果"; 

#5


好像在程序里面出去的话,sheet名字肯定是乱码!
我上次也碰到了!但是没有解决!客户方自己去搞了!

#6


Response.Clear();
Response.Buffer = true;
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("content-disposition","attachment;filename=\"" + System.Web.HttpUtility.UrlEncode("中文",System.Text.Encoding.UTF8) + ".xls\"");
Response.ContentType = "Application/ms-excel";

#7


该回复于2010-12-02 16:15:58被版主删除

#8


wuyq11的方法跟我目前遇到的情况是一样的,直接在弹出对话框上点击打开按钮Sheet名称是乱码,保存后打开不是乱码,

#9


我这边假前刚做了个!!
思路是:
   新建两个.aspx文件,一个添加个按钮,它的Button1_Click事件中添加如下代码:
     Response.Redirect("另一个.aspx");
   在那个没有按钮的.aspx页面的cs文件中添加如下代码:
     protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("content-disposition", "attachment;filename=你要的中文名称.xls");
    }
  当你点击按钮回自动让你保存一个.xls文件!sheet名称你想啥就是啥!
  遗留问题,没有搞多个sheet,不知道行步行!

#10


WeekWant的思路我试了下,只是在对话框上的中文名称正常显示,直接打开还是乱码,我现在把问题点用图表示
C#导出Excel,sheet名称为中文时变成乱码 怎么解决,如果点击对话框上的打开按钮,Excel的中文名称就变成乱码 C#导出Excel,sheet名称为中文时变成乱码 怎么解决,如果点击对话框上的保存按钮,保存后的excel文件再打开就是正常的中文显示,现在就是要解决直接打开的时的乱码问题

#11


我用以下代码做的,也是这样,只有在保存后再打开就不是的了,我个人认为直接打开是操作临时文件,因而系统随机分配的文件名,请高手指正.        
        esponse.Charset = "gb2312";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
        string filename = HttpUtility.UrlEncode("查询结果输出为Excel格式数据" + ".xls");
        Response.AddHeader("content-disposition", "attachment; filename=" + filename); 

#12


我这边的话,直接打开是好的!!
你的VS2005 和系统的默认语言是啥??
有可能跟这个有关系!我这边的话都是中文!

#13


对了!你设置的语言代码也要写的!!!

#14


你的VS2005 和系统的默认语言是怎么设置的 ,我这边还是乱码,估计是跟这个设置有关了

#1


该回复于2012-02-05 13:11:32被版主删除

#2


response.HeaderEncoding = System.Text.Encoding.Default;
response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ".xls");

#3


注意编码,多试几种编码。

#4


string filename = N"单位统计结果"; 

#5


好像在程序里面出去的话,sheet名字肯定是乱码!
我上次也碰到了!但是没有解决!客户方自己去搞了!

#6


Response.Clear();
Response.Buffer = true;
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("content-disposition","attachment;filename=\"" + System.Web.HttpUtility.UrlEncode("中文",System.Text.Encoding.UTF8) + ".xls\"");
Response.ContentType = "Application/ms-excel";

#7


该回复于2010-12-02 16:15:58被版主删除

#8


wuyq11的方法跟我目前遇到的情况是一样的,直接在弹出对话框上点击打开按钮Sheet名称是乱码,保存后打开不是乱码,

#9


我这边假前刚做了个!!
思路是:
   新建两个.aspx文件,一个添加个按钮,它的Button1_Click事件中添加如下代码:
     Response.Redirect("另一个.aspx");
   在那个没有按钮的.aspx页面的cs文件中添加如下代码:
     protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("content-disposition", "attachment;filename=你要的中文名称.xls");
    }
  当你点击按钮回自动让你保存一个.xls文件!sheet名称你想啥就是啥!
  遗留问题,没有搞多个sheet,不知道行步行!

#10


WeekWant的思路我试了下,只是在对话框上的中文名称正常显示,直接打开还是乱码,我现在把问题点用图表示
C#导出Excel,sheet名称为中文时变成乱码 怎么解决,如果点击对话框上的打开按钮,Excel的中文名称就变成乱码 C#导出Excel,sheet名称为中文时变成乱码 怎么解决,如果点击对话框上的保存按钮,保存后的excel文件再打开就是正常的中文显示,现在就是要解决直接打开的时的乱码问题

#11


我用以下代码做的,也是这样,只有在保存后再打开就不是的了,我个人认为直接打开是操作临时文件,因而系统随机分配的文件名,请高手指正.        
        esponse.Charset = "gb2312";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
        string filename = HttpUtility.UrlEncode("查询结果输出为Excel格式数据" + ".xls");
        Response.AddHeader("content-disposition", "attachment; filename=" + filename); 

#12


我这边的话,直接打开是好的!!
你的VS2005 和系统的默认语言是啥??
有可能跟这个有关系!我这边的话都是中文!

#13


对了!你设置的语言代码也要写的!!!

#14


你的VS2005 和系统的默认语言是怎么设置的 ,我这边还是乱码,估计是跟这个设置有关了