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

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

  • 相关阅读:
    c语言学习笔记(6)——for和while循环
    c语言学习笔记(5)——进制
    c语言学习笔记(4)——流程控制
    ckeditor复制粘贴word
    java上传超大文件
    plupload上传整个文件夹
    vue+上传文件夹
    php+上传大文件
    web+文件夹上传
    2G以上的大文件如何上传
  • 原文地址:https://www.cnblogs.com/whitewin/p/290155.html
Copyright © 2011-2022 走看看