public class ExcelHelper
{
/// <summary>
/// 导出之前必须保证grid有数据
/// </summary>
/// <param name="GridView"></param>
/// <param name="ExcelName"></param>
public void print(System.Web.UI.WebControls.GridView GridView,string ExcelName)
{
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.Charset = "GB2312";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(ExcelName)) + DateTime.Now.ToShortDateString() + ".xls");
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
System.Web.HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
System.Web.HttpContext.Current.Response.Write("<style type='text/css'>td{text-align:center;border:solid 1px black;}</style>");
// Response.Write(AddExcelHead()); //显示网格线
GridView.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
//BindGrid();
GridView.RenderControl(oHtmlTextWriter);
System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString());
// Response.Write(AddExcelbottom());//显示网格线
System.Web.HttpContext.Current.Response.End();
}
public static string AddExcelHead()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
sb.Append(" <head>");
sb.Append(" <!--[if gte mso 9]><xml>");
sb.Append("<x:ExcelWorkbook>");
sb.Append("<x:ExcelWorksheets>");
sb.Append("<x:ExcelWorksheet>");
sb.Append("<x:Name></x:Name>");
sb.Append("<x:WorksheetOptions>");
sb.Append("<x:Print>");
sb.Append("<x:ValidPrinterInfo />");
sb.Append(" </x:Print>");
sb.Append("</x:WorksheetOptions>");
sb.Append("</x:ExcelWorksheet>");
sb.Append("</x:ExcelWorksheets>");
sb.Append("</x:ExcelWorkbook>");
sb.Append("</xml>");
sb.Append("<![endif]-->");
sb.Append(" </head>");
sb.Append("<body>");
return sb.ToString();
}
public static string AddExcelbottom()
{
StringBuilder sb = new StringBuilder();
sb.Append("</body>");
sb.Append("</html>");
return sb.ToString();
}
}
-------------------------------------------------------------------------------------------------
使用方法
protected void Button1_Click(object sender, EventArgs e)
{
if (this.GridView1.Rows.Count > 0)
{
//grdList.BottomPagerRow.Visible = false; //隐藏分页列
ExcelHelper c = new ExcelHelper();
c.print(this.GridView1,"报表");
}
}
public override void VerifyRenderingInServerForm(Control control)
{
}