发 帖  
原厂入驻New
[问答]

.NETGRIDVIEW导出EXCEL怎么操作?

48 excel
分享
请教一下大家.NETGRIDVIEW导出EXCEL怎么操作?
0
2020-11-4 10:08:23   评论 分享淘帖 邀请回答
1个回答
protected void Button2_Click(object sender, EventArgs e)
    {
        if (this.GridView1.Rows.Count == 0)
        {
            Response.Write(&quot;<script>alert(&#39;没有查找到数据,无法导出!&#39;)&quot;);
        }
        else
        {
            this.GridView1.AllowPaging = false; // 将有分页的GridView中的数据全部导出到Excel
            gvBond();
            export(&quot;application/ms-excel&quot;, &quot;工作人员.xls&quot;);
            // 换成 export(&quot;application/ms-word&quot;, &quot;工作人员.doc&quot;); 那么导出的就是Word格式的了.
            this.GridView1.AllowPaging = true;
            gvBond();
        }
    }
     public void export(string FileType, string FileName)
    {
        string style = @&quot;<style>.text{mso-number-format:/@}</script>&quot;;//导入到excel时,保存表里数字列中前面存在的 0 .
        Response.Clear();
        Response.Charset = &quot;GB2312&quot;;
        Response.ContentEncoding = Encoding.UTF7;
        Response.AppendHeader(&quot;Content-Disposition&quot;, &quot;attachment;filename=&quot; + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
        Response.ContentType = FileType;
        this.EnableViewState = false;
        this.GridView1.AllowPaging = false;
        System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo(&quot;ZH-CN&quot;, 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()方法,否则报错为“类型&quot;GridView&quot;的控件&quot;GridView1&quot;必须放在具有 runat=server 的窗体标记内“
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Cells[3].Attributes.Add(&quot;class&quot;, &quot;text&quot;);//在数字列前存在的 0 的列中加入 class 样式 以便保存 0
        }
    }
注:如果GricView中有分页的话,导出到Excel时就会报错.可通过修改页文件可以修正这个问题:EnableEventValidation = &quot;false&quot;.
<%@ Page Language=&quot;C#&quot; EnableEventValidation=&quot;false&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;Default.aspx.cs&quot; Inherits=&quot;_Default&quot; %>
2020-11-4 17:52:06 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表