ASP.NET GridView导出Excel

导出GridView时候没有用控件,直接用流。
在多个地方需要导出Excel,出现一个问题,有的地方导出的中文正常,但是有的地方导出的中文会出现乱码的情况。查找网上相关资料,可能问题发现是编码问题。我原来输出流字符集用的是Encoding.Default,将输出流字符集改成UTF-8仍然会有问题。
查找资料发现在导出的时候加上如下代码可解决问题:

Response.Write(“<meta http-equiv=Content-Type content=text/html;charset=GB2312>”);

完整代码如下:

public static void Export(Page page, GridView gv, string fileName)
{
  page.Response.Buffer = true;
  page.Response.Clear();
  page.Response.ClearContent();
  page.Response.ClearHeaders();
  page.Response.Charset = “GB2312″;
  page.Response.ContentEncoding = System.Text.Encoding.GetEncoding(“GB2312″);
  page.Response.AddHeader(“Content-Disposition”, “attachment;filename=”+fileName+”.xls”);
  page.Response.Write(“<meta http-equiv=Content-Type content=text/html;charset=GB2312>”);
  page.Response.ContentType = “application/excel”;
  System.IO.StringWriter sw = new System.IO.StringWriter();
  HtmlTextWriter htw = new HtmlTextWriter(sw);
  gv.RenderControl(htw);
  page.Response.Write(sw.ToString());
  page.Response.End();
}
时间: 2024-08-18 21:25:36

ASP.NET GridView导出Excel的相关文章

Asp.net中导出Excel文档(Gridview)

主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width=&q

ASP.NET常用导出Excel方法汇总

本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html http://geekswithblogs.net/azamsharp/archive/2005/12/21/63843.aspx 参考:http://forums.asp.net/t/1221467.aspx Export GridView to Excel using System; using System.Data; using System.

ASP.NET datable导出excel

本文转载:http://www.cnblogs.com/chwkai/archive/2005/10/08/250426.html 不错的文章:http://www.cnblogs.com/lzhp/archive/2012/08/02/2680763.html 不错文章:http://hcyu2012.blog.163.com/blog/static/165192580201132532526918/ public void DataTable2Excel(DataTable dtData)

扩展GridView导出Excel功能

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.Web;using System.Web.Compilation;using System.Web.UI;using System.Web.UI.WebControls; namespace Web{ 

关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

转载自 阿姆的博客 关于asp.net C# 导出Excel文件打开Excel文件格式与扩展名指定格式不一致的解决办法 导致“文件格式与扩展名指定格式不一致”这个问题,是因为大多数人在导出excel文件的时候,都是默认保存excel的格式, 也就是直接workbook.Save(path)或者workbook.SaveAs(path).进而忽略了SaveAs方法里面的参数.与保存excel文件格式有 关的是它第二个参数FileForMat. FileFormat 类型:System.Object

asp.net DataTable导出 excel的方法记录(第三方)

官网:http://npoi.codeplex.com/ 简单应用,主要是可以实现我们想要的简单效果,呵呵 需要引入dll,可以在官网下载,也可在下面下载 C#代码   protected void getExcel(DataTable dt) { NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.Sheet sheet = book.CreateSh

ASP.NET简易导出Excel

使用asp.net导出Excel有多重方法.经过总结,现推荐一种简易方法,不用再记那些复杂的类名了. code: using System.Data; using System.IO; //add Microsoft.Excel refference and set operation right in server first public void exportExcel(DataTable dt, string fileName) { StringWriter sw=new StringW

GridView 导出Excel

protected void btndaochu_Click(object sender, EventArgs e)        {            GetList();//读取GridView 数据  这里就不写了            Response.Clear();            Response.Charset = "utf-8";            Response.ContentEncoding = System.Text.Encoding.GetEn

ASP.net中导出Excel的简单方法介绍

下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat="server" style="width: 700px; margin-left: auto; margin-right: auto;"> <!--startprint--> <table width="100%" border=&