C# web GridView 汇出成EXCEL (with BOM) VS. (without BOM)

把GridView资料汇成EXCEL

UI画面
http://img2.58codes.com/2024/20106764odHJ61aRkB.png
without bom汇出 : 中文会乱码
http://img2.58codes.com/2024/20106764dyOuncO9ZL.png
with bom汇出 : 中文显示正常
http://img2.58codes.com/2024/201067648tlDmCaak5.png

程式如下
aspx

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title></title></head><body>    <form id="form1" runat="server">    <div>        </div>        <asp:GridView ID="GridView1" runat="server">        </asp:GridView>        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" style="height: 21px" Text="nobom" />        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="withbom" />    </form></body></html>

cs

        protected void Page_Load(object sender, EventArgs e)        {            System.Data.DataTable dt = new System.Data.DataTable();            dt.Columns.Add("col1");            dt.Columns.Add("col2");            System.Data.DataRow row1 = dt.NewRow();            row1[0] = "国文";            row1[1] = "99";            dt.Rows.Add(row1);            System.Data.DataRow row2 = dt.NewRow();            row2[0] = "英文";            row2[1] = "100";            dt.Rows.Add(row2);            GridView1.DataSource = dt;            GridView1.DataBind();        }        protected void Button1_Click(object sender, EventArgs e)        {            nobom();        }        protected void Button2_Click(object sender, EventArgs e)        {            withbom();        }        private void nobom()        {            Response.Buffer = true;            Response.Charset = "UTF-8"; //设定字集            Response.AppendHeader("Content-Disposition", "attachment;filename=nobom.xls"); //filename 可自定            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");            Response.ContentType = "application/ms-excel "; //内容型态设为Excel            System.IO.StringWriter objStringWriter = new System.IO.StringWriter();            System.Web.UI.HtmlTextWriter objHtmlTextWriter = new System.Web.UI.HtmlTextWriter(objStringWriter);            this.GridView1.RenderControl(objHtmlTextWriter);                        Response.Write(objStringWriter.ToString());            Response.End();        }        private void withbom()        {            Response.Buffer = true;            Response.Charset = "UTF-8"; //设定字集            Response.AppendHeader("Content-Disposition", "attachment;filename=withbom.xls"); //filename 可自定            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");            Response.ContentType = "application/ms-excel "; //内容型态设为Excel            System.IO.StringWriter objStringWriter = new System.IO.StringWriter();            System.Web.UI.HtmlTextWriter objHtmlTextWriter = new System.Web.UI.HtmlTextWriter(objStringWriter);            this.GridView1.RenderControl(objHtmlTextWriter);            System.IO.StreamWriter sw = new System.IO.StreamWriter(Response.OutputStream, System.Text.Encoding.UTF8);//这样一笔的时侯,就不会乱码了            sw.Write(objStringWriter.ToString());            sw.Close();                         Response.End();        }

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章