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同上

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

  • 相关阅读:
    [转]国内源码下载类网站
    JS 异步处理机制的几种方式(转)
    NodeJS 服务器基本模板
    JS Ajax的error函数(转)
    CSS 文本溢出部分显示省略号
    .net网络编程之一:Socket编程
    在.NET使用JSON作为数据交换格式
    在web.config和app.config文件中增加自定义配置节点
    C#的解题思路(1):不重复随机数的产生问题
    用C#绘制实时曲线图
  • 原文地址:https://www.cnblogs.com/whitewin/p/290155.html
Copyright © 2011-2022 走看看