首页 > 代码库 > 将table导出为Excel的标准无乱码写法
将table导出为Excel的标准无乱码写法
导出为Excel有很多种写法,对于一些复杂的格式,笔者喜欢在后台先拼成一个<table>,再使用Response输出。
如果数据中包含中文或者一些特殊字符,可很多不规范的写法都会导致页面乱码,这里就把一种(笔者认为)最标准的格式带给大家:
Page p = HttpContext.Current.Handler as Page;p.Response.Clear();p.Response.Buffer = true;p.Response.Charset = "UTF-8";p.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename, Encoding.UTF8) + ".xls");p.Response.ContentEncoding = Encoding.UTF8;p.Response.ContentType = "application/vnd.ms-excel";p.EnableViewState = false;p.Response.Write("<html><head><meta http-equiv=‘Content-Type‘ content=‘application/vnd.ms-excel; charset=utf-8‘ /></head>" + text + "</html>");p.Response.End();
以上代码需注意两点:
1)Charset/AppendHeader/ContentEncoding都必须统一使用UTF8
2)text里面如果只有<table>,必须在前后加上<html></html>.为进一步规范,建议用以上代码格式编写
好了,现在应该是无论如何你怎么导出Excel,也没有乱码字符了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。