GridView到处Excel/Word

来源:互联网 发布:手机 淘宝 代付 编辑:程序博客网 时间:2024/06/09 19:27

using System;
using System.Collections.Generic;
using System.Text;

using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace GV.Common
{
    
public class Tools
    {
        
#region 常用js输出
        
/*参考:blog.csdn.net/zhoufoxcn/archive/2008/04/21/2312440.aspx
         
*/

        
/// <summary>
        
/// 输出简单提示
        
/// </summary>
        
/// <param name="msg"></param>
        
/// <param name="page"></param>
        public static void Alert(string msg, Page page)
        {
            
string js = @"<Script language='JavaScript'>alert('" + msg + "');</Script>";
            
if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "alert"))
            {
                page.ClientScript.RegisterStartupScript(page.GetType(), 
"alert", js);
            }
            
//page.ClientScript.RegisterStartupScript(page.GetType(), "alert", "alert('" + str + "!');", true);
        }

        
#endregion

        
#region 输出word,excel

        
/// <summary>
        
/// 用法:
        
/// Tools.Export(GridView1, "application/ms-word", "123.doc");
        
/// Tools.Export(GridView1, "application/vnd.ms-excel", "data.xls");
        
/// </summary>
        
/// <param name="gridView">GridView</param>
        
/// <param name="FileType">类型</param>
        
/// <param name="FileName">文件名</param>
        public static void Export(GridView gridView, string FileType, string FileName)
        {
            StringBuilder sb 
= new StringBuilder();
            StringWriter sw 
= new StringWriter(sb);
            HtmlTextWriter htw 
= new HtmlTextWriter(sw);

            Page page 
= new Page();
            HtmlForm form 
= new HtmlForm();

            gridView.EnableViewState 
= false;
            page.EnableEventValidation 
= false;
            page.DesignerInitialize();

            page.Controls.Add(form);
            form.Controls.Add(gridView);
            page.RenderControl(htw);

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer 
= true;
            HttpContext.Current.Response.ContentType 
= FileType;
            HttpContext.Current.Response.AddHeader(
"Content-Disposition""attachment;filename=" + FileName);
            HttpContext.Current.Response.Charset 
= "UTF-8";
            HttpContext.Current.Response.ContentEncoding 
= Encoding.Default;
            HttpContext.Current.Response.Write(sb.ToString());
            HttpContext.Current.Response.End();
        }

        
#endregion
    }
}