asp.net导出数据到Excel的几种方法(1/3)

原创 2008年04月02日 12:34:00

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。

第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户端。这种方法生成的其实是个HTML文件,只不过Excel支持HTML格式,所以使用起来似乎和真正的Excel文件没什么两样,但它终究不是Excel格式,它不能当作数据源供其他程序调用。

这种实现起来比较简单,就不多述,请看代码。

   public  void ExportExcel( System.Web.UI.WebControls.WebControl objControl, string strFileName)
        
...{
             
            strFileName 
= System.Web.HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8);

            
           
            System.Web.HttpContext.Current.Response.Clear();
            System.Web.HttpContext.Current.Response.Buffer 
= true;
            System.Web.HttpContext.Current.Response.Charset 
= "gb2312";
            System.Web.HttpContext.Current.Response.AppendHeader(
"Content-Disposition""online; filename=" + strFileName + ".xls");
            System.Web.HttpContext.Current.Response.ContentEncoding 
= System.Text.Encoding.GetEncoding("gb2312");
            System.Web.HttpContext.Current.Response.ContentType 
= "application/ms-excel";
            
            System.Globalization.CultureInfo myCItrad 
= new System.Globalization.CultureInfo("zh-CN"true);
            System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter(myCItrad);
            System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
           
            objControl.RenderControl(oHtmlTextWriter);
          
            objControl 
= null;
            System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString().Replace(
"<td""<td STYLE='MSO-NUMBER-FORMAT:/@'"));
            System.Web.HttpContext.Current.Response.Buffer 
= false;
            System.Web.HttpContext.Current.Response.End();
        }

 

可能出现的错误:

1、只能在执行 Render() 的过程中调用 RegisterForEventValidation;

解决办法:修改页面选项<%@ Page EnableEventValidation = "false"

还有一种办法是修改web.config的,但影响全局,这里就不推荐了。

2...必须放在具有 runat=server 的窗体标记内。

解决办法:

在页面中重写VerifyRenderingInServerForm方法,不对控件要求form容器进行验证

 public override void VerifyRenderingInServerForm(Control control)
        {
            
         //这里没有内容。
        }

asp.net导出数据到Excel的三种方法

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户...
  • zlwzlwzlw
  • zlwzlwzlw
  • 2015年02月09日 15:31
  • 2527

Web导出excel的几种方法

在项目中我们经常遇到需要将报表导出成excel下载保存下来,在不同的要求和不同的资源情况下我们有不同的处理方式。在这里我将谈谈我所遇到的几种情况和遇到的一些问题。  总的来说可以分为:服务器端生成和...
  • lxk2013
  • lxk2013
  • 2016年04月28日 10:14
  • 1421

asp.net 使用NPOI实现导出Excel功能

asp.net 使用NPOI实现导出Excel功能
  • LanMangFeiGe
  • LanMangFeiGe
  • 2017年04月27日 13:53
  • 2360

asp.net导出数据到Excel的几种方法 学习心得

  • 2009年02月26日 16:23
  • 40KB
  • 下载

ASP.NET 数据导出到excel文件 浏览器客户端下载的几种方法

ASP.NET 数据导出到excel文件给客户端下载的几种方法 (2007-04-13 10:27:20)     分类:C#/ASP.NET学习笔记  数据导出到excel文件给客户端下...
  • binyao02123202
  • binyao02123202
  • 2011年10月12日 09:05
  • 3236

对.NET中导出数据到EXCEL的几种方法探讨 C1TrueDBGrid

分类: 日本.NET項目常用 2007-09-10 14:02 1096人阅读 评论(2) 收藏 举报 最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当...
  • xiaopengIT
  • xiaopengIT
  • 2012年04月07日 16:49
  • 643

Asp.Net表格导出Excel的几种方法

1、Html导出Excel的方法:    1.1、前台代码:         .ExportTable{    border-top:.1pt solid #000000;    border-rig...
  • ruiqi317
  • ruiqi317
  • 2011年06月26日 19:59
  • 243

asp.net导出数据到Excel的三种方法

Asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输...
  • TianGaojie123abc
  • TianGaojie123abc
  • 2012年08月23日 16:24
  • 689

asp.net导出数据到Excel的三种方法

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户...
  • zlwzlwzlw
  • zlwzlwzlw
  • 2015年02月09日 15:31
  • 2527

[转]asp.net导出数据到Excel的三种方法

原文出处:asp.net导出数据到Excel的几种方法(1/3) 、asp.net导出数据到Excel的几种方法(2/3)、asp.net导出数据到Excel的几种方法(3/3)  asp.ne...
  • qianjin_w
  • qianjin_w
  • 2011年11月12日 22:15
  • 338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net导出数据到Excel的几种方法(1/3)
举报原因:
原因补充:

(最多只允许输入30个字)