• .NET GRIDVIEW导出EXCEL


    protected void Button2_Click(object sender, EventArgs e)
        {
            if (this.GridView1.Rows.Count == 0)
            {
                Response.Write("<script>alert('没有查找到数据,无法导出!')");
            }
            else
            {
                this.GridView1.AllowPaging = false; // 将有分页的GridView中的数据全部导出到Excel
                gvBond();
                export("application/ms-excel", "工作人员.xls");
                // 换成 export("application/ms-word", "工作人员.doc"); 那么导出的就是Word格式的了.
                this.GridView1.AllowPaging = true;
                gvBond();
            }
        }
         public void export(string FileType, string FileName)
        {
            string style = @"<style>.text{mso-number-format:/@}</script>";//导入到excel时,保存表里数字列中前面存在的 0 .
            Response.Clear();
            Response.Charset = "GB2312";
            Response.ContentEncoding = Encoding.UTF7;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentType = FileType;
            this.EnableViewState = false;
            this.GridView1.AllowPaging = false;
            System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            this.GridView1.RenderControl(htw);
            Response.Write(style);
            Response.Write(sw.ToString());
            //Response.Write(dt.ToString());
            Response.End();
        }

        public override void VerifyRenderingInServerForm(Control control)
        {
            //在后台中重载VerifyRenderingInServerForm()方法,否则报错为“类型"GridView"的控件"GridView1"必须放在具有 runat=server 的窗体标记内“
        }
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[3].Attributes.Add("class", "text");//在数字列前存在的 0 的列中加入 class 样式 以便保存 0
            }
        }

    注:如果GricView中有分页的话,导出到Excel时就会报错.可通过修改页文件可以修正这个问题:EnableEventValidation = "false".

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

  • 相关阅读:
    Metrics.NET
    DotNet Multithread
    WebApi框架概述
    RESTful API 概述
    MvcPager分页控件以适用Bootstrap效果
    Windows集群网络负载均衡
    学习Oracle日记(10)-数据类型
    在Eclipse中使用Junit4进行单元测试
    Android--学习笔记--02--AndroidStudio的设置
    Android--学习笔记--01--开发软件安装
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/13884381.html
Copyright © 2020-2023  润新知