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)
        {
            
         //这里没有内容。
        }

java导出数据到excel的几种方法的比较

一、 直接拷贝整个表格到EXCEL中    二、 通过遍历表格,给EXCEL中相应的单元格赋值。    三、 把表格中的内容提取出来,利用IE的另存为.csv的格式。    各方法的好处:    1....
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2011-01-11 11:01:00
  • 6350

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

继续前篇,第三种方法是利用OELDB数据访问对象操作Excel文件,达到将数据导出到Excel的目的,这种方法可能用的人不太多,缺点是必须有一个存在的Excel文件。优点是服务器不需要安装Excel,...
  • cpp2017
  • cpp2017
  • 2008-04-02 16:28:00
  • 6490

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

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

C# 上传excel到数据库表和导出数据到Excel

  • 2011年01月20日 14:29
  • 121KB
  • 下载

asp.net导出EXCEL的好方法!(好用,导出全部数据)

1.调用方法: ExportExcel("application/ms-excel", "EXCEL名称.xls", GridView1, this.Page); 2.定义方法: ...
  • shan1774965666
  • shan1774965666
  • 2014-10-29 22:51:42
  • 3005

.Net中导出数据到Excel(asp.net和winform程序中)

一、asp.net中导出Excel的方法:  在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给...
  • FairyStepWGL
  • FairyStepWGL
  • 2016-05-16 10:10:30
  • 1525

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

     继续前文,第二种方法是利用Excel的Com接口库来完成,这种方法的优点是功能强大,可像使用Excel程序一样来操作Excel文件,缺点是需要服务器安装Excel程序,且需要一定的安全配置。...
  • cpp2017
  • cpp2017
  • 2008-04-02 15:47:00
  • 7612

asp.net mvc 数据导出excel表及自excel表导入数据到相应表

一、自数据表导出excel /// /// 导出excel /// /// /// public FileRe...
  • sxf359
  • sxf359
  • 2017-04-07 16:29:54
  • 846

asp.net 导出excel 中文乱码解决方法

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象, 其实要解决中文乱码很简单,设置一下字符集。如下: ...
  • ranbolwb
  • ranbolwb
  • 2012-05-29 10:29:00
  • 17613

ASP.NET导出数据到Excel

  • 2009年06月25日 17:58
  • 5KB
  • 下载
收藏助手
不良信息举报
您举报文章:asp.net导出数据到Excel的几种方法(1/3)
举报原因:
原因补充:

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