Asp.net 导出Excel 和Word
/// <summary>
/// 导出 Excel 文件
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="fileName">Excel 文件名(不含扩展名)</param>
public static void ToExcel(DataTable dt, string fileName)
{
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView gv = new GridView();
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
gv.DataSource = dt;
gv.DataBind();
gv.RenderControl(hw);
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.Clear();
Response.Charset = "gb2312";
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls");
Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
Response.Write(tw.ToString());
Response.Write("</body></html>");
Response.End();
hw.Close();
hw.Flush();
gv.Dispose();
tw.Close();
tw.Flush();
}
/// <summary>
/// 导出 Word 文件
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="fileName">Word 文件名(不含扩展名)</param>
public static void ToWord(DataTable dt, string fileName)
{
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView gv = new GridView();
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
gv.DataSource = dt;
gv.DataBind();
gv.RenderControl(hw);
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.Clear();
Response.Charset = "gb2312";
Response.ContentType = "application/ms-word";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".doc");
Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
Response.Write(tw.ToString());
Response.Write("</body></html>");
Response.End();
hw.Close();
hw.Flush();
gv.Dispose();
tw.Close();
tw.Flush();
}
/// 导出 Excel 文件
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="fileName">Excel 文件名(不含扩展名)</param>
public static void ToExcel(DataTable dt, string fileName)
{
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView gv = new GridView();
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
gv.DataSource = dt;
gv.DataBind();
gv.RenderControl(hw);
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.Clear();
Response.Charset = "gb2312";
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls");
Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
Response.Write(tw.ToString());
Response.Write("</body></html>");
Response.End();
hw.Close();
hw.Flush();
gv.Dispose();
tw.Close();
tw.Flush();
}
/// <summary>
/// 导出 Word 文件
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="fileName">Word 文件名(不含扩展名)</param>
public static void ToWord(DataTable dt, string fileName)
{
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView gv = new GridView();
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
gv.DataSource = dt;
gv.DataBind();
gv.RenderControl(hw);
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.Clear();
Response.Charset = "gb2312";
Response.ContentType = "application/ms-word";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".doc");
Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
Response.Write(tw.ToString());
Response.Write("</body></html>");
Response.End();
hw.Close();
hw.Flush();
gv.Dispose();
tw.Close();
tw.Flush();
}