zoukankan      html  css  js  c++  java
  • 导出gridview的数据到Excel中

    前台代码

    <%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation = "false"  CodeFile="test.aspx.cs" Inherits="test" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
        </div>
        <asp:LinkButton ID="lbExcel" runat="server" onclick="lbExcel_Click">导出Excel</asp:LinkButton>
        <asp:GridView ID="gvwStudent" runat="server">
        </asp:GridView>
        </form>
       
    </body>
    </html>

    后台代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using ControlClassspace;
    using System.Text;
    using System.IO;

    public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gridViewBind();
            }
        }

    //绑定gridView的函数

        public void gridViewBind()
        {
            string sqlText = @"SELECT * FROM Student";
            ControlClass controlClass = new ControlClass();
            controlClass.BindGridView(gvwStudent, sqlText);
        }

        protected void lbExcel_Click(object sender, EventArgs e)
        {
            Export("application/vnd.xls", "xx.xls");
        }

        //重写此方法,使没有包含在<from runat="server">中的客户端脚本

       //gridview中必须要重写此方法,但datagrid中不需要
        public override void VerifyRenderingInServerForm(Control control)
        {

            /*以确认在运行时为指定的ASP.NET 控件呈现HtmlForm 控件*/
        }
        /// <summary>
        /// 导出gridview函数,提出来的好处是可以放在公用函数中
        /// </summary>
        /// <param name="FileType"></param>
        /// <param name="FileName"></param>
        private void Export(string FileType,string FileName)
        {
            Response.Charset = "gb2312";//字体
            //解决中文乱码
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF7;
            //the title of Excel
            Response.AddHeader("content-disposition", "attachment;filename="+HttpUtility.UrlEncode(FileName,Encoding.UTF8).ToString());
            //To sign the File type
            Response.ContentType = FileType;
            //提交后不回显,加快系统速度
            this.EnableViewState = false;
            //实现一个用于将信息写入字符串的 TextWriter。该信息存储在基础 StringBuilder 中。
            StringWriter tw = new StringWriter();
            //将标记字符和文本写入到 ASP.NET 服务器控件输出流。此类提供 ASP.NET 服务器控件在向客户端呈现标记时所使用的格式设置功能。
            HtmlTextWriter htw = new HtmlTextWriter(tw);
            //将服务器控件的内容输出到所提供的 HtmlTextWriter 对象中;如果已启用跟踪功能,则存储有关控件的跟踪信息。
            gvwStudent.RenderControl(htw);
            Response.Write(tw.ToString());
            Response.End();
            gvwStudent.AllowPaging = true;//导出后先取消分页,以便能将所有数据导出。
            gridViewBind();//再重新绑定一次数据
        }
    }

  • 相关阅读:
    今天的学习
    sql&nbsp;修改字段
    原来这个分类是powerdesigner
    sql&nbsp;sum&nbsp;&nbsp;&nbsp;&nbsp;空或0
    mac 配置maven报zsh: command not found各种坑点走位
    java-Map集合中存入的数组值转存到ArryList集合中的实现
    Java-集合总结之Collection和Map--Map(3)
    Java-集合总结之Collection和Map--Set(2)
    Java-集合总结之Collection和Map--List(1)
    测试-bug跟踪过程中的相关状态英文释义
  • 原文地址:https://www.cnblogs.com/xiajf/p/1876087.html
Copyright © 2011-2022 走看看