//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版本就不能了,都是乱码,请问有什么可以解决的办法吗,没有分不好意思啊
asp.net 将动态生成的 table 导出到excel
答案:2 悬赏:20 手机版
解决时间 2021-03-16 20:39
- 提问者网友:遁入空寂
- 2021-03-16 10:20
最佳答案
- 五星知识达人网友:玩家
- 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 编码。
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
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯