功能:可以实现导出整个数据表格或整个页面

public bool ExportGv(string fileType, string fileName)
        {
            bool flag = false;
            try
            {
                //定义文档类型、字符编码
                Response.Clear();
                Response.Buffer = true;
                HttpContext.Current.Response.Charset = "GB2312";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

//2.定义导入文档的类型
                HttpContext.Current.Response.ContentType = fileType;
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=\"" +
                    System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
                this.Gv.Page.EnableViewState = false;

//定义一个输入流
                System.IO.StringWriter tw = new System.IO.StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(tw);

//将目标数据绑定到输入流输出,这里的this可以换成要导出的控件数据
                this.RenderControl(hw);
                Response.Output.Write(tw.ToString());
                Response.Flush();
                Response.End();
                this.Gv.AllowPaging = false;
                flag = true;
            }
            catch (Exception ex)
            {
                flag = false;
                throw ex;
            }
            return flag;
        }

有时候导出时出现缺少CSS样式的特性,自此补充
         public bool exportAndPrint(string fileType, string fileName)
        {
            bool flag = false;
            try
            {
                //定义文档类型、字符编码
                Response.Clear();
                Response.Buffer = true;
                HttpContext.Current.Response.Charset = "GB2312";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

//2.定义导入文档的类型
                HttpContext.Current.Response.ContentType = fileType;
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=\"" +
                    System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));

//定义一个输入流
                System.IO.StringWriter tw = new System.IO.StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(tw);

//将目标数据绑定到输入流输出
                this.RenderControl(hw);

string outStr = "<style>   ";
                using (System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath("~/CSS/APDetailInfo.css")))
                {
                    outStr += sr.ReadToEnd();
                }
            
                outStr += "  </style>";
                outStr = outStr.Replace("/r/n", "");

outStr = tw.ToString().Replace("<link href=\"CSS/APDetailInfo.css\" rel=\"stylesheet\" />", "");
                Response.Output.Write(outStr);
                Response.Flush();
                Response.End();
                flag = true;
            }
            catch (Exception ex)
            {
                flag = false;
                throw ex;
            }
            return flag;
        }

protected void Export_Click(object sender, EventArgs e)
        {

TYKY_OA.Web.Listnation<TYKY_OA.Model.ExtraInfo> pageList = (Listnation<Model.ExtraInfo>)Session["ADAFOTRlistnation"];
            if (pageList != null)
            {

//由于是导出整个页面,有些控件不想被导出,所以置为空
                this.Gv.Columns[10].Visible = false;

//这里是整个DIV的隐藏
                this.head.Visible = false;
                this.boot.Visible = false;

this.Gv.DataSource = pageList.ObjList;
                this.Gv.DataBind();
                //ms-word/ms-txt/ms-html/ms-excel
                if (!ExportGv("application/ms-excel", "ExportGv.xls"))
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "ExportFailed", "<script>alert('数据导入失败');</script>");
                }
                this.prev.Disabled = !pageList.FlagPrivous;
                this.next.Disabled = !pageList.FlagNext;
                this.pageIndex.Text = "当前第" + pageList.CurrentPage + "页" + "(共" + pageList.PageCount + "页)";
                this.Gv.DataSource = pageList.GetList();
                this.Gv.DataBind();
            }
        }

public override void VerifyRenderingInServerForm(Control control)
        {
           // base.VerifyRenderingInServerForm(control);
        }

ASP.NET 导出数据表格的更多相关文章

  1. ASP.NET导出数据到Excel 实例介绍

    ASP.NET导出数据到Excel  该方法只是把asp.net页面保存成html页面只是把后缀改为xlc不过excel可以读取,接下连我看看还有别的方式能导出数据,并利用模版生成. 下面是代码 新建 ...

  2. [js]EasyUI导出数据表格(Export DataGrid)

    包括 'datagrid-export.js' 文件 <script type="text/javascript" src="datagrid-export.js& ...

  3. 【转】asp.net导出数据到Excel的三种方法

    来源:http://www.cnblogs.com/lishengpeng1982/archive/2008/04/03/1135490.html 原文出处:http://blog.csdn.net/ ...

  4. thinkphp5中使用excel导出数据表格(包涵图片)

    首先使用composer require phpoffice/phpexcel下载安装phpexcel包. 将包放入extend下面. 不附加图片的导出 /** * 导出excel(不带图片) * @ ...

  5. phpexcel导出数据表格

    1.下载phpexcel(李昌辉) 2.在页面引入phpexcel的类文件,并且造该类的对象 include("../chajian/phpexcel/Classes/PHPExcel.ph ...

  6. asp.net将数据导出到excel

    本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...

  7. ASP如何将table导出EXCEL表格

    网页导出excel表格非常常用,对于一些加载<table>的数据网页,经常会用到这种功能,下面和大家分享一下ASP如何导出EXCEL表格 工具/原料   ASP编辑器 方法/步骤     ...

  8. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  9. 导出数据到Excel表格

    开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,作者:陈鸿鹏撰写时间:2019年5月25日123下面是我们来学习的导出数据到Excel表格的总结首先在视图层写导出数据的点击 ...

随机推荐

  1. Python的列表推导式,字典推导式,集合推导式使用方法

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

  2. Mongodb的安装

    下载:http://www.mongodb.org/downloads mongodb-win32-x86_64-3.2.5-signed.msi   安装: 1.dos下切换至安装目录bin下: 2 ...

  3. Centos6安装Gitlab

    安装参考 https://about.gitlab.com/downloads/ 可以从清华的镜像下载安装包, 注意区分自己用的是哪个发行版 https://mirror.tuna.tsinghua. ...

  4. IIS部署站点相关经验总结

    IIS部署站点相关经验总结 1.IIS和.net4.0安装是有先后顺序的,应该先安装.net framework 4.0,再安装IIS.如果按相反顺序安装的话,IIS中看不到4.0相关的东西,那么只能 ...

  5. Linux内核模块开发基础【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298180 1. 什么是内核模块 内核模块具有以下两个特点:1. 模块本身并不 ...

  6. Moosefs源代码分析

    一.分析MFS非常有用的资源 本来想写的,但是看到了CSDN上的资料就没这个心情了,非常详细的讲解分享给大家: CSDN中非常详细的文档:http://download.csdn.net/detail ...

  7. Highcharts——让你的网页上图表画的飞起

    Highcharts是一款纯javascript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表,Highcharts目前支持直线图.曲线图.面积图.柱状图.饼图.散点图等多达 ...

  8. 阅读ArrayBlockingQueue源码了解如何利用锁实现BlockingQueue

    BlockingQueue是多线程里面一个非常重要的数据结构.在面试的时候,也常会被问到怎么实现BlockingQueue.本篇根据Java7里ArrayBlockingQueue的源码,简单介绍一下 ...

  9. AppBox升级进行时 - 如何向OrderBy传递字符串参数(Entity Framework)

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. Entity Framework提供的排序功能 再来回顾一下上篇文章,加载用户 ...

  10. mvc SelectList selected失效的解决方法

    ViewBag.QuestionnaireType = new SelectList(questionCollectionTypeList, "CodeID", "Cod ...