永发信息网

asp.net 将动态生成的 table 导出到excel

答案:2  悬赏:20  手机版
解决时间 2021-03-16 20:39
  • 提问者网友:遁入空寂
  • 2021-03-16 10:20
//Response.Clear();
//Response.Buffer = true;
//Response.Charset = "GB2312";
//Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + "" + System.DateTime.Today.ToShortDateString() + ".xls");
//Response.ContentEncoding = System.Text.Encoding.UTF7;
//Response.ContentType = "application/vnd.ms-excel";
//this.EnableViewState = false;

//System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
//System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//this.divResport.RenderControl(oHtmlTextWriter);
//Response.Output.Write(oStringWriter.ToString());

//Response.Flush();
//Response.End();
我的页面是动态生成的table格式,用2003导出来可以查看,但是2010版本就不能了,都是乱码,请问有什么可以解决的办法吗,没有分不好意思啊
最佳答案
  • 五星知识达人网友:玩家
  • 2021-03-16 10:40
改变下编码试试
Response.ContentEncoding = System.Text.Encoding.UTF8;

UTF-7:A Mail-Safe Transformation Format of Unicode(RFC1642)。这是一种使用 7 位 ASCII 码对 Unicode 码进行转换的编码。它的设计目的仍然是为了在只能传递 7 为编码的邮件网关中传递信息。 UTF-7 对英语字母、数字和常见符号直接显示,而对其他符号用修正的 Base64 编码。符号 + 和 - 号控制编码过程的开始和暂停。所以乱码中如果夹有英文单词,并且相伴有 + 号和 - 号,这就有可能是 UTF-7 编码。
全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-03-16 11:07
/// /// 将web控件导出 /// /// 控件实例 /// 类型:excel或word public void expertcontrol(system.web.ui.control source, documenttype type) { //设置http的头信息,编码格式 if (type == documenttype.excel) { //excel response.appendheader("content-disposition","attachment;filename=result.xls"); response.contenttype = "application/ms-excel"; } else if (type == documenttype.word) { //word response.appendheader("content-disposition","attachment;filename=result.doc"); response.contenttype = "application/ms-word"; } response.charset = "utf-8"; response.contentencoding = system.text.encoding.utf8; //关闭控件的视图状态 source.page.enableviewstate =false; //初始化htmlwriter system.io.stringwriter writer = new system.io.stringwriter() ; system.web.ui.htmltextwriter htmlwriter = new system.web.ui.htmltextwriter(writer); source.rendercontrol(htmlwriter); //输出 response.write(writer.tostring()); response.end(); } //文档类型 public enum documenttype { word, excel }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯