none
Repeater导出excel为什么只有用IE下载是才是正确的 360和迅雷下载都是乱码 RRS feed

  • 问题

  •  StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            RepAdd.RenderControl(hw);
            Response.Clear();
            Response.ContentType = "application/vnd.ms-excel";
            Response.Charset = "";
            RepAdd.Page.EnableViewState = true;
            Response.Charset = "gb2312";
            Response.ContentEncoding = Encoding.GetEncoding("gb2312");
            Response.AppendHeader("Content-Disposition","attachment;filename=\"" + HttpUtility.UrlEncode("Order_Delay_Record(" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ").xls",System.Text.Encoding.UTF8) + "\"");
            Response.Write("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=UTF8\"><title> adsf</title></head><body><table><tr><td>Order&nbsp;No</td><td>Customer&nbsp;Name</td></tr>");
            Response.Write(sw.ToString());
            Response.Write("</table></body></html>");
            Response.End();

    这是代码

    • 已移动 ThankfulHeart 2013年1月8日 5:53 Repeater导出问题 (发件人:.NET Framework 一般性问题讨论区)
    2013年1月8日 2:40

答案

全部回复

  • 用360 和 迅雷下载时是整个页面
    2013年1月8日 2:56
  • 您好,

    从你的代码中可以看到 你设置了 contentEncoding为GB2312,但是你又设置了 header为UTF8,还有页面里的charset也是UTF8,建议将这两处的charset改为GB2312。


    Mike Feng
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年1月8日 5:56
  •  StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            RepAdd.RenderControl(hw);
            Response.Clear();
            Response.ContentType = "application/vnd.ms-excel";
            Response.Charset = "";
            RepAdd.Page.EnableViewState = true;
            Response.Charset = "gb2312";
            Response.ContentEncoding = Encoding.GetEncoding("gb2312");
            Response.AppendHeader("Content-Disposition","attachment;filename=\"" + HttpUtility.UrlEncode("Order_Delay_Record(" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ").xls",System.Text.Encoding.UTF8) + "\"");
            Response.Write("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=UTF8\"><title> adsf</title></head><body><table><tr><td>Order&nbsp;No</td><td>Customer&nbsp;Name</td></tr>");
            Response.Write(sw.ToString());
            Response.Write("</table></body></html>");
            Response.End();

    这是代码

    你好,你可以尝试使用 Mike Feng 的方法。

    另外你这样的导出方法是可行的,但是其实导出的不是正规的excel格式,而是html,只是excel能够识别,并显示。

    不是很推荐用这种方式导出。


    认真的活,认真的爱!

    2013年1月10日 15:14
    版主