GridView导出为Excel

protected void btExcel_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        ds = Session["myDataSet"] as DataSet;
        DataTable DT = ds.Tables[0];
        //生成将要存放结果的Excel文件的名称
        string NewFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
        //转换为物理路径
        NewFileName = Server.MapPath("~/Temp/" + NewFileName);
        //根据模板正式生成该Excel文件
        File.Copy(Server.MapPath("~/Temp/Module01.xls"), NewFileName, true);
        //建立指向该Excel文件的数据库连接
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NewFileName + ";Extended Properties='Excel 8.0;'";
        OleDbConnection Conn = new OleDbConnection(strConn);
        //打开连接,为操作该文件做准备
        Conn.Open();
        OleDbCommand Cmd = new OleDbCommand("", Conn);

        foreach (DataRow DR in DT.Rows)
        {
            string XSqlString = "insert into [Sheet1$]";
            XSqlString += "([举办年度],[名称],[主题],[举办时间],[举办地点],[承办单位],[预算],[实际规模],[评价]) values(";
            XSqlString += "'" + DR["Year"] + "',";
            XSqlString += "'" + DR["CampName"] + "',";
            XSqlString += "'" + DR["Topic"] + "',";
            XSqlString += "'" + DR["HeldTime"] + "',";
            XSqlString += "'" + DR["HeldPlace"] + "',";
            XSqlString += "'" + DR["UndertakeDep"] + "',";
            XSqlString += "'" + DR["Budget"] + "',";
            XSqlString += "'" + DR["ActualScale"] + "',";
            XSqlString += "'" + DR["Remarks"] + "')";
            Cmd.CommandText = XSqlString;
            Cmd.ExecuteNonQuery();
        }

        //操作结束,关闭连接
        Conn.Close();
        //打开要下载的文件,并把该文件存放在FileStream中
        System.IO.FileStream Reader = System.IO.File.OpenRead(NewFileName);
        //文件传送的剩余字节数:初始值为文件的总大小
        long Length = Reader.Length;

        Response.Buffer = false;
        Response.AddHeader("Connection", "Keep-Alive");
        Response.ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("夏令营信息.xls"));
        Response.AddHeader("Content-Length", Length.ToString());

        byte[] Buffer = new Byte[10000];  //存放欲发送数据的缓冲区
        int ByteToRead;           //每次实际读取的字节数

        while (Length > 0)
        {
            //剩余字节数不为零,继续传送
            if (Response.IsClientConnected)
            {
                //客户端浏览器还打开着,继续传送
                ByteToRead = Reader.Read(Buffer, 0, 10000);     //往缓冲区读入数据
                Response.OutputStream.Write(Buffer, 0, ByteToRead); //把缓冲区的数据写入客户端浏览器
                Response.Flush();                  //立即写入客户端
                Length -= ByteToRead;                //剩余字节数减少
            }
            else
            {
                //客户端浏览器已经断开,阻止继续循环
                Length = -1;
            }
        }

        //关闭该文件
        Reader.Close();
        //删除该Excel文件
        File.Delete(NewFileName);
           }

方法2:

 

  private void Export(GridView gvUser, string Style, string FileType, string FileName)
    {
        Response.ClearContent();
        Response.Charset = "GB2312";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
        Response.ContentType = FileType;
        //page.Response.ContentType = "application/ms-excel";
        Page.EnableViewState = false;
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        //turn off paging
        gvUser.AllowPaging = false;
        BindGrid(gvUser);

        gvUser.RenderControl(hw);
        Response.Write(Style);
        Response.Write(sw.ToString());
        //page.Response.Flush();
        Response.End();

        //turn the paging on again
        gvUser.AllowPaging = true;
        BindGrid(gvUser);
    }
    private void BindGrid(GridView gvUser)
    {
        DataSet ds = new DataSet();
        ds = Session["myDataSet"] as DataSet;
        gvUser.DataSource = ds;
        gvUser.DataBind();
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
    }
    protected void GridViewCamp_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        LinkButton deleteLB = (LinkButton)e.Row.FindControl("lbDelete");
        if (deleteLB != null)
        {
            deleteLB.Attributes.Add("onclick", "return confirm('您确实要删除所选择的数据项吗?');");
        }
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
          e.Row.Cells[0].Attributes["class"] = "text";
        }
    }

 protected void btExcel_Click(object sender, EventArgs e)
    {

    string strStyle = @"<style> .text { mso-number-format:\@; }</style>";
        //string strStyle = "";
        Export(GridViewCamp,strStyle,"application/ms-excel", "myExcel.xls");
    }

前台界面设置:EnableEventValidation="false"

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

转载于:https://www.cnblogs.com/longlong434/archive/2008/09/21/1295285.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设置su为不需要密码切换为root

设置su为不需要密码 如果需要对某用户su命令也不需要输入密码&#xff0c;则需要修改下列的&#xff1a;1--->如果没有wheel组 则用sudo groupadd wheel创建命令为 sudo groupadd wheel&#xff1b;2---->sudo vim /etc/group将username和root加入到wheel用户组内 如图&a…

被女朋友拉黑后,我写了个“舔狗”必备神器

全世界只有3.14 % 的人关注了 青少年数学之旅 “ 在一个阳光明媚的清晨&#xff0c;我打开窗户呼吸了一口新鲜空气。阳光灿烂&#xff0c;岁月静好&#xff0c;又是一个约女朋友出去爬山吃饭看电影的好日子。 图片来自包图网 想到女朋友的大眼睛&#xff0c;我脸上不禁洋溢起了…

涨薪关键之反射机制,引得项目经理对你的看重,加薪触手可及!!!!

前言 就比如我前几天被面试官问什么是反射&#xff1f;&#xff1f;&#xff1f; 而我的回答是&#xff01;&#xff01;&#xff01; 反射是动态语言的关键&#xff0c;反射允许程序在执行期间借助Reflection API取得任何类的内部信息&#xff0c;并能直接操作任曦对象的内…

Wave 文件(5): 获取 Wave 文件的格式信息

装载格式信息的结构有: TWaveFormat wFormatTag: Word;nChannels: Word;nSamplesPerSec: DWORD;nAvgBytesPerSec: DWORD;nBlockAlign: Word; ;TPCMWaveFormat wf: TWaveFormat;wBitsPerSample: Word; ;TWaveFormatEx wFormatTag: Word; nChannels: Word; nSa…

如何摆脱「自我否定」状态

大家好&#xff0c;我是Z哥。你最近正处于自我否定的状态吗&#xff1f;如果不是的话&#xff0c;回想一下最近的一次处于这种状态是什么时候&#xff1f;当时的感受如何&#xff1f;以及&#xff0c;最终是如何走出这个状态的&#xff1f;不着急&#xff0c;给你 1 分钟回忆一…

struct and union

[url]http://hi.baidu.com/tweigh/blog/item/5303d2ef6e2720eace1b3e9d.html[/url]1. struct的巨大作用面对一个人的大型C/C程序时&#xff0c;只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C程序&#xff0c;势必要 涉及一些(甚至大量)进…

编码GBK的不可映射字符

为什么80%的码农都做不了架构师&#xff1f;>>> 由于JDK是国际版的&#xff0c;在编译的时候&#xff0c;如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式&#xff0c; 则javac.exe首先获得我们操作系统默认采用的编码格式&#xff0c; 也即在编译java…

低调的大神!他改变了半导体产业!史上唯一两次获得诺贝尔物理奖,却几乎被人遗忘...

全世界只有3.14 % 的人关注了青少年数学之旅两次获得诺贝尔奖的科学家&#xff0c;世界上仅有这四个人&#xff01;他们是&#xff1a;1. 居里夫人(Marie Curie,1867~1934),波兰科学家,他的丈夫叫皮埃尔居里,两人合称“居里夫妇”! 1903年,居里夫妇和亨利...2.约翰巴丁 美国物理…

TTime::FormatL详解

TTime::FormatL详解 示例&#xff1a;TTime time;Time.HomeTime();TBuf<32> timeBuf;time.FormatL(timeBuf,_L(“%F%Y/%M/%D,%H:%T:%S”)); // 2008/08/16,21:22:22详解&#xff1a;格式串分为本地相关和本地无关格式串&#xff0c;也就是说和系统的时间日期中设置的格式…

入职第一天,我接手了号称【屎山】的祖传代码,这还能卷吗???

公司各种各样的祖传代码都是令新人虎躯一震的代码&#xff0c;因为有时候你根本不知道它是干嘛的&#xff0c;甚至觉得它毫无用处&#xff0c;关键是 还绝对不能动&#xff0c;碰一段改半年&#xff0c;别问我怎么知道的。最讽刺的是&#xff0c;你可能为了修改代码&#xff0c…

设计模式之迭代器

迭代器模式介绍集合的结构迭代器模式是一种行为设计模式&#xff0c;让你能在不暴露集合底层表现形式(列表、栈、树等)的情况下遍历集合中所有的元素。迭代器模式满足了单一职责和开闭原则&#xff0c;外界的调用方也不需要知道任何一个不同的数据结构在使用上的遍历差异。迭代…

倒啤酒竟能拿到诺贝尔物理学大奖!明明是普通操作,凭什么这么强?

全世界只有3.14 % 的人关注了青少年数学之旅倒啤酒&#xff0c;是艺术&#xff0c;更是一门学问。每个初来社会报道的男孩&#xff0c;都必须掌握这个酷炫技能。它是从古自今的文化传承&#xff0c;也是一个男人成熟的标志。向快手老铁致敬然而&#xff0c;理想很丰满&#xff…

铁山靠之——HarmonyOS基础 - 1.0

HarmonyOS学习第一章 一、HarmonyOS简介1.1 安装和使用DevEco Studio1.2 环境配置1.3 项目创建1.4 运行程序1.5 基本工程目录1.5.1 工程级目录1.5.2 模块级目录1.5.3 app.json51.5.4 module.json51.5.5 main_pages.json 二、TypeScript快速入门2.1 简介2.2 基础类型2.2.1 布尔值…

vb.net2.0 Hmac-md5加密算法

2019独角兽企业重金招聘Python工程师标准>>> <summary> Hmac-md5加密算法。 </summary> <param name"APassWord">加密串(即密码)</param> <param name"ASourceStr">原始字符串</param> <returns>&l…

[转载]AXIS学习笔记

转自&#xff1a;http://blog.csdn.net/ronghao100/archive/2005/06/08/390530.aspx 系列&#xff1a;http://www.blogjava.net/RongHao/archive/2007/06/12/123644.html 前天头告诉我用SOAP WEB服务开发一个客户程序&#xff0c;用来与企业内部的ERP进行交互。晚上赶快找相关的…

解决VS2010 beta2 安装后html标签和script智能提示不起作用的问题

此文已经移至&#xff1a;解决VS2010 beta2 安装后html标签和script智能提示不起作用的问题 安装VS2010 beta2 后&#xff0c;发现正常的html标签的智能提示不起作用&#xff0c;比如<a>,<p>&#xff0c;还有在<script>里面也没有了js的智能提示。 解决办法…

如何禁用 ASP.NET 网站的所有的 浏览器缓存 ?

咨询区 Palani&#xff1a;我在寻找一个方法禁用某个 ASP.NET MVC 网站的所有浏览器缓存&#xff0c;我发现了如下方法。Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); Response.Cache.SetNoStore();而且我也发现了可以在 html 上追加一个 meta 标记。…

初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!

最近事情太多&#xff0c;没太时间写博客。今天抽空再整理整理面试中的那点事吧&#xff0c;帮助那些正在找工作或想跳槽找工作的学弟学妹们。 前面我己写过多篇推文&#xff0c;相信看过我文章的伙伴们已经了解掌握了不少。从目前流行的开发技术、常见的面试问题以及问题的答…

你还记得当初是怎么对我的吗? | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源阿粪青&#xff0c;侵权删&#xff09;

4项技巧使你不再为PHP中文编码苦恼

2019独角兽企业重金招聘Python工程师标准>>> PHP程序设计中中文编码问题曾经困扰很多人&#xff0c;导致这个问题的原因其实很简单&#xff0c;每个国家(或区域)都规定了计算机信息交换用的字符编码集&#xff0c;如美国的扩展 ASCII 码&#xff0c;中国的 GB2312-8…