RobyRen

成长历程,一步一个脚印!

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();
        }
复制代码

posted on   イモツホヌ  阅读(460)  评论(3编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2009年9月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

导航

统计

点击右上角即可分享
微信分享提示