asp.net 通过 Handler 导出数据至excel (让用户下载)

效果图:

asp.net 通过 Handler 导出数据至excel (让用户下载)


代码:

Export2Excel.ashx

 

<%@ WebHandler Language="C#" CodeBehind="Export2Excel.ashx.cs" Class="BLIC.SecurityCodeValidate.Web.Handler.Export2Excel" %>


 


Export2Excel.ashx.cs

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.SessionState;

using System.IO;

using System.Data;



namespace BLIC.SecurityCodeValidate.Web.Handler

{

    /// <summary>

    /// AdminLogin 的摘要说明

    /// </summary>

    public class Export2Excel : IHttpHandler, IRequiresSessionState

    {



        public void ProcessRequest(HttpContext context)

        {





            try

            {

                test1(context);

            }

            catch (Exception ex)

            {

            }



            //try

            //{

            //    test1(context);

            //}

            //catch (Exception ex)

            //{

            //    //context.Response.ContentType = "text/plain";

            //    context.Response.Write("导出失败:" + ex.Message);

            //}

        }



        public bool IsReusable

        {

            get

            {

                return false;

            }

        }



        private void test1(HttpContext context)

        {

            HttpResponse resp = System.Web.HttpContext.Current.Response;

            resp.Charset = "utf-8";

            resp.Clear();

            string filename = "统计贴标报表_" + DateTime.Now.ToString("yyyyMMddHHmmss");

            resp.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");

            resp.ContentEncoding = System.Text.Encoding.UTF8;



            resp.ContentType = "application/ms-excel";

            string style = "<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=utf-8\"/>" + "<style> .table{ font: 9pt Tahoma, Verdana; color: #000000; text-align:center;  background-color:#8ECBE8;  }.table td{text-align:center;height:21px;background-color:#EFF6FF;}.table th{ font: 9pt Tahoma, Verdana; color: #000000; font-weight: bold; background-color: #8ECBEA; height:25px;  text-align:center; padding-left:10px;}</style>";

            resp.Write(style);

 

            resp.Write("<table class='table'><tr><th>姓名</th><th>出生年月</th><th>籍贯</th><th>毕业时间</th></tr>");

           

            System.Data.DataTable dtSource = new System.Data.DataTable();

            dtSource.TableName = "statistic";

            dtSource.Columns.Add("第一列");

            dtSource.Columns.Add("第二列");

            dtSource.Columns.Add("第三列");

            dtSource.Columns.Add("第四列");



            System.Data.DataRow row = null;

            row = dtSource.NewRow();

            row[0] = "张三";

            row[1] = "1987-09-09";

            row[2] = "河北保定";

            row[3] = "2008年毕业";

            dtSource.Rows.Add(row);



            row = dtSource.NewRow();

            row[0] = "李四";

            row[1] = "1987-09-02";

            row[2] = "湖北武汉";

            row[3] = "2009年毕业";

            dtSource.Rows.Add(row);



            row = dtSource.NewRow();

            row[0] = "王五";

            row[1] = "1987-09-01";

            row[2] = "湖南湘潭";

            row[3] = "2013年毕业";

            dtSource.Rows.Add(row);



            foreach (DataRow tmpRow in dtSource.Rows)

            {

                resp.Write("<tr><td>" + tmpRow[0] + "</td>");

                resp.Write("<td>" + tmpRow[1] + "</td>");

                resp.Write("<td>" + tmpRow[2] + "</td>");

                resp.Write("<td>" + tmpRow[3] + "</td>");

                resp.Write("</tr>");

            }

            resp.Write("<table>");



            resp.Flush();

            resp.End();

        }

  

    }

}


 

 

你可能感兴趣的:(asp.net)