using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
/// <summary>
///ToExcel 的摘要说明
/// </summary>
public class Export
{
public Export()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 导出excel表格
/// </summary>
public static void SaveToExcel(System.Web.UI.Control ctl, string filename)
{
//清除客户端当前显示
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Charset = "GB2312";
//显示标头
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");//这样的话,可以设置文件名为中文,且文件名不会乱码。其实就是将汉字转换成UTF8
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
//HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF7;
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!
HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
StringWriter stringWrite = new System.IO.StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
ctl.RenderControl(htmlWrite);
HttpContext.Current.Response.Write(stringWrite.ToString());
HttpContext.Current.Response.End();
//HttpContext.Current.Response.Clear();
//HttpContext.Current.Response.Buffer = true;
//HttpContext.Current.Response.Charset = "utf-8";
//HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filename));
//HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;//设置输出流为简体中文
//HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
//this.EnableViewState = false;
//System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
//System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
//System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//ctl.RenderControl(oHtmlTextWriter);
//HttpContext.Current.Response.Write(oStringWriter.ToString());
//HttpContext.Current.Response.End();
}
}