zoukankan      html  css  js  c++  java
  • 转帖:[Asp.net技术]asp.net中Word\Excel的导出数据制作(懒人发掘)

    这是asp.net 中将页面数据导出word、excel的常用代码(以datagrid为例)

    导出word代码:

    Response.Clear();
       Response.AddHeader("content-disposition", "attachment;filename=FileName.doc");

       Response.Charset = "utf-8";

       Response.Cache.SetCacheability(HttpCacheability.NoCache);

       Response.ContentType = "application/vnd.word";

       System.IO.StringWriter stringWrite = new System.IO.StringWriter();

       System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

       DataGrid1.RenderControl(htmlWrite);

       Response.Write(stringWrite.ToString());

       Response.End();

    导出excel代码:

    Response.Clear();
       Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");

       Response.Charset = "utf-8";

       Response.Cache.SetCacheability(HttpCacheability.NoCache);

       Response.ContentType = "application/vnd.xls";

       System.IO.StringWriter stringWrite = new System.IO.StringWriter();

       System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

       DataGrid1.RenderControl(htmlWrite);

       Response.Write(stringWrite.ToString());

       Response.End();

    这个代码很容易可以在网上搜到,但是如果页面的datagrid有排序和分页时就会出现错误,这是时候如果用循环导出数据,实在是不爽。现有一个新的办法:

    第一种:

    复制同样一个datagrid,赋同样的数据,隐藏,取消分页和排序功能:

    Datagrid2.Visible=true;
       Response.Clear();
       Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");

       Response.Charset = "utf-8";

       Response.Cache.SetCacheability(HttpCacheability.NoCache);

       Response.ContentType = "application/vnd.xls";
       this.EnableViewState=false;
       System.IO.StringWriter stringWrite = new System.IO.StringWriter();

       System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

       Datagrid2.RenderControl(htmlWrite);

       Response.Write(stringWrite.ToString());

       Response.End();
       Datagrid2.Visible=false;

    即可倒出漂亮的excel文件,word同上

    同理可得:导出前取消分页和排序,导出再恢复,可以实现这个功能

  • 相关阅读:
    Java(八)——面向对象(4)-抽象类与接口
    Java(七)——面向对象(3)-多态
    Java(六)——面向对象(2)-继承
    Java(五)——面向对象(1)-基础
    Java(四)——数组
    Java(三)——流程控制
    Java(二)——Java基础
    易忘小技巧--yum
    网络测速命令--speedtest
    大型网站架构技术读后感
  • 原文地址:https://www.cnblogs.com/whitewin/p/290155.html
Copyright © 2011-2022 走看看