将gridview中的数据导入excel中,解决汉字出现乱码的问题。
1、首先编写导出函数Export
public void Export(string FileType,string FileName)
{
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");//添加改行,消除汉字乱码
Response.ContentType = FileType;
this.EnableViewState =false ;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
2、按钮事件调用该方法
protected void Button1_Click(object sender, EventArgs e)
{
Export("application/ms-excel","学生信息表.xls");
}
3、重写VerifyRenderingInServerForm事件,如果是将datagrid中的数据导入到excel中,就没必要重写该方法。
public override void VerifyRenderingInServerForm(Control control)
{
//内容随意,可不写
}
显示如下图:

如果要格式化输出gridview的内容,可以添加如下方法:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:###岁"); //设置格式
}
}
本文介绍了一种将ASP.NET中的GridView数据导出到Excel的方法,并解决了导出过程中可能出现的汉字乱码问题。通过编写导出函数Export并设置Response的相关属性,确保了数据正确输出且格式良好。
148

被折叠的 条评论
为什么被折叠?



