扩展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
{
    //作者:林宏权 2015/12/31 00:16

/// <summary>
    /// 扩展GridView导出Excel功能
    /// </summary>
    public partial class ExportGridView : GridView
    {
        /// <summary>
        /// 数据库连接字符串
        /// </summary>
        public string ConnectionString { get; set; }
        /// <summary>
        /// 命令文本
        /// </summary>
        public string SqlCmdText { get; set; }
        /// <summary>
        /// 主键字段
        /// </summary>
        public string[] PrimaryKey { get; set; }
        /// <summary>
        /// 导出的Excel文件名
        /// </summary>
        public string ExcelFileName { get; set; }
        /// <summary>
        /// 导出分页数据
        /// </summary>
        public bool ExportPagging { get; set; }

public ExportGridView()
        {
        }

public ExportGridView(string connectString,string cmd,string[] keys)
        {
            //启用分页
            AllowPaging = true;
            //启用排序
            AllowSorting = true;
            //数据源
            DataSource = new SqlDataSource(connectString, cmd);
            //主键字段
            DataKeyNames = keys;
            //导出分页数据(默认导出分页数据)
            ExportPagging = true;
        }

/// <summary>
        /// 网页表格导出到Excel文件f
        /// </summary>
        /// <param name="fileName">导出的文件名</param>
        public  void GridViewToExcel( string fileName)
        {
            //启用分页
            AllowPaging = false;
            //启用排序
            AllowSorting = false;
            //重新绑定数据源
            DataBind();
            //字符集编码
            HttpContext.Current.Response.Charset = "GB2312";
            //内容编码
            HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
            //文件名编码
            var fileNameUtf8 = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
            //添加Http头输出
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileNameUtf8);
            //输出MIME类型
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            //关闭页面与服务器控件的视图状态
            EnableViewState = false;
            //输出服务器控件(GridView)的内容到HtmlTextWriter
            //==============================================
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            RenderControl(hw);
            //==============================================
            //http输出(Excel)文件
            HttpContext.Current.Response.Write(tw.ToString());
            //发送到客户端
            HttpContext.Current.Response.End();
        }
    }
}

时间: 2024-12-18 03:08:42

扩展GridView导出Excel功能的相关文章

flex 导出Excel功能实现

方法一: 1.Excel导出主要代码: try   {    var bytes: ByteArray = new ByteArray();    bytes.writeMultiByte(DataGridExporter.exportSCV(dataGrid),"cn-gb");    var fr:FileReference = new FileReference();    var date:Date = new Date();    var dateTime:String =

GridView 导出Excel

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

IE下GridView导出Excel无反应

使用GridView导出Excel的方法把GridView中的内容导出为Excel: /// <summary> /// 将网格数据导出到Excel /// </summary> /// <param name="ctrl">网格名称(如GridView1)</param> /// <param name="FileType">要导出的文件类型(Excel:application/ms-excel)<

项目笔记:导出Excel功能分sheet页插入数据

导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN"); JxlUtil jsl = new JxlUtil(); List<Device> dataList =new ArrayList<Device>(); List<DeviceExport> list = new ArrayList<DeviceExport

C#实现GridView导出Excel

using System.Data;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using System.Text; namespace DotNet.Utilities{    /// <summary>    /// Summary description for GridViewExport    /// </summary>    public cl

GridView导出Excel的超好样例

事实上网上有非常多关于Excel的样例,可是不是非常好,他们的代码没有非常全,读的起来还非常晦涩.经过这几天的摸索,最终能够完毕我想要导出报表Excel的效果了.以下是我的效果图. 一.前台的页面图 GridView的第一页的内容 GridView第二页的内容: 大家可能遇到这样的情况,就是这个时候导出Excel的时候,打开Excel的时候发现GridView的第二页的内容却没有导出到Excel表里面.事实上解决这样的情况,非常easy,仅仅要在导出之前,把Gridview的设置分页设置为Fla

ASP.NET GridView导出Excel

导出GridView时候没有用控件,直接用流.在多个地方需要导出Excel,出现一个问题,有的地方导出的中文正常,但是有的地方导出的中文会出现乱码的情况.查找网上相关资料,可能问题发现是编码问题.我原来输出流字符集用的是Encoding.Default,将输出流字符集改成UTF-8仍然会有问题.查找资料发现在导出的时候加上如下代码可解决问题: Response.Write(“<meta http-equiv=Content-Type content=text/html;charset=GB231

laravel-admin 自定义导出excel功能,并导出图片

https://www.jianshu.com/p/91975f66427d 最近用laravel-admin在做一个小项目,其中用到了excel导出功能. 但是laravel-admin自带的导出功能不带图片,并且导出的数据有很多冗余的字段,并非我所需要的功能. 所以参考官方文档调整代码,实现了自定义导出excel文件,并且带上图片: 步骤如下: 1. 安装laravel-excel插件 可参考laravel5.5 中使用laravel-excel composer require maatw

asp.net core web的导入导出excel功能

这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core,其实对于excel的导入导出还可以使用NPOI, 这里讲解EPPlus的方式 1.创建asp.net core web (mvc)项目 效果图如下 2.在项目上右键,进入nuget管理器,安装EPPlus.Core 3.添加一个XlsxController控制器,在其中添加导入和导出功能 usin