1.导出效果图:

2.C#导出EXCEL通用类源代码:

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.IO;

using System.Text;

using System.Drawing;

///

///CommonClass 的摘要说明

///

public class CommonClass

{

public CommonClass()

{

//

//TODO: 在此处添加构造函数逻辑

//

}

public static void ReportToExcel(System.Web.UI.Control ctl, string fileName)

{

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF7;

HttpContext.Current.Response.ContentType = "application/ms-excel";

HttpContext.Current.Response.Charset = "gb2312";

HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", Encoding.UTF8).ToString());

ClearChildControls(ctl);

StringWriter sw = new StringWriter();

HtmlTextWriter htw = new HtmlTextWriter(sw);

ctl.RenderControl(htw);

HttpContext.Current.Response.Write(sw.ToString());

HttpContext.Current.Response.End();

}

private static void RecursiveClear(Control control)

{

for (int i = control.Controls.Count - 1; i >= 0; i--)

{

RecursiveClear(control.Controls[i]);

}

if (control is Repeater)

{

control.Parent.Controls.Remove(control);

}

else if (control is LinkButton)

{

LiteralControl literal = new LiteralControl();

control.Parent.Controls.Add(literal);

literal.Text = ((LinkButton)control).Text;

control.Parent.Controls.Remove(control);

}

else if (control is Button)

{

control.Parent.Controls.Remove(control);

}

else if (control is System.Web.UI.WebControls.Image)

{

if (((System.Web.UI.WebControls.Image)control).Visible)

{

control.Parent.Controls.Add(new LiteralControl("o"));

}

control.Parent.Controls.Remove(control);

}

else if (control is ListControl)

{

LiteralControl literal = new LiteralControl();

control.Parent.Controls.Add(literal);

try

{

literal.Text = ((ListControl)control).SelectedItem.Text;

}

catch

{

}

control.Parent.Controls.Remove(control);

}

return;

}

protected static void ClearChildControls(Control dg1)

{

if (dg1 is GridView)

{

GridView dg = (GridView)dg1;

for (int i = dg.Columns.Count - 1; i >= 0; i--)

{

if (dg.Columns[i].GetType().Name == "ButtonColumn"

|| dg.Columns[i].GetType().Name == "CheckBoxField"

|| dg.Columns[i].GetType().Name == "CommandField")

{

dg.Columns[i].Visible = false;

}

}

RecursiveClear(dg1);

}

else

{

RecursiveClear(dg1);

}

}

}

3.调用方法:

CommonClass.ReportToExcel(GridView1, "从GridView导出的EXCEL");(责任编辑:51CSharp.net)

转载于:https://www.cnblogs.com/Sue_/articles/1663422.html

《WebForm开发系列高级篇》Item2导出EXCEL通用类(GridView,DataList,Repeater,DetailView)相关推荐

  1. NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中

    由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案. 注意:若直接使用在WinForm项目中,必需先下 ...

  2. 微信接口开发之高级篇系列【网页授权获取用户基本信息】

    PHP微信接口开发之高级篇之网页授权获取用户基本信息 二.WEB开发工具 转载于:https://www.cnblogs.com/tinywan/p/5860981.html

  3. arcgis开发 多版本之间如何兼容_arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)...

    你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...

  4. JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)

    JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...

  5. 微信小程序购物商城系统开发系列-工具篇

    微信小程序购物商城系统开发系列-工具篇 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操 ...

  6. java ee 6 源码_Java EE 6开发手册·高级篇(第4版)

    资源名称:Java EE 6开发手册·高级篇(第4版) 内容简介: <Java EE 6 开发手册?高级篇(第4 版)>是一本面向实战.以示例为驱动.在Java 平台企业版6(Java E ...

  7. java技术教程视频_Spring开发视频教程高级篇+源码(400M)33讲

    Spring开发视频教程高级篇+源码(400M)33讲 01_全面阐释Spring及其各项功能.rar 02_搭建与测试Spring的开发环境.rar 03_编码剖析Spring管理Bean的原理.r ...

  8. JAVA工具类(17)--Java导入导出Excel工具类ExcelUtil

    实战 导出就是将List转化为Excel(listToExcel) 导入就是将Excel转化为List(excelToList) 导入导出中会出现各种各样的问题,比如:数据源为空.有重复行等,我自定义 ...

  9. JavaScript导出Excel通用代码。

    2019独角兽企业重金招聘Python工程师标准>>> js导出Excel通用代码. html代码如下: <!DOCTYPE html PUBLIC "-//W3C/ ...

最新文章

  1. pyhanlp 中文词性标注与分词简介
  2. 自己录制的Linux视频教程
  3. SD-WAN和MPLS有什么用途?
  4. Android关机流程源码分析
  5. 机房那么大,我想用AR来看看!
  6. Java多线程两种实现方式的对比
  7. 【Linux系统编程】I/O多路复用select、poll、epoll的区别使用
  8. CC框架实践(1):实现登录成功再进入目标界面功能
  9. C语言 实现登录注册功能
  10. 安装meme_新的Meme订单:通过简单的浏览器缓存更改游戏
  11. 项目中出现specify @BootstrapWith‘s ‘value‘ attribute or make the default bootstrapper class avail
  12. Zabbix官方文件Zabbix图形树
  13. 【转】从机器学习谈起
  14. 计算机配置显示器,电脑怎么配置多台显示器
  15. 12306车站信息爬取(1)——实现站点所有信息的查询
  16. android settings过渡动画,华为过渡动画
  17. Revisiting Domain Generalized Stereo Matching Networks from a FeatureConsistency Perspective
  18. Excel如何将两列数据左右调换位置
  19. 深度学习与ArcGIS概述(1)
  20. 云e办学习笔记(二十七)邮件自动发送功能实现

热门文章

  1. 【Go】从键盘输入字符串和数字
  2. 使用python操作postgresql 查询
  3. linux clock命令,Linux中clock命令起什么作用呢?
  4. 易语言单窗口单ip软件源码_游戏工作室如何防封?游戏账号和IP被封的解决方法...
  5. Python_基础_4
  6. 2.分布式文件系统HDFS之一
  7. vm ububtu突然没网
  8. Pytorch搭建Faster R-CNN目标检测平台
  9. Java数据结构和算法(二)——数组
  10. 設計模式之王 - MVC