导出excel,并且解决身份证科学计数发的问题

 protected void Button3_Click(object sender, EventArgs e)
    {
        string Year = System.DateTime.Now.Year.ToString();
            string Month = System.DateTime.Now.Month.ToString();
            string Day = System.DateTime.Now.Day.ToString();
            string HH = System.DateTime.Now.Hour.ToString();
            string mm = System.DateTime.Now.Minute.ToString();
            string DateString ="人员报表"+ Year + "-" + Month + "-" + Day + "-" + HH + "-" + mm;
        FarmerDA da = new FarmerDA();
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        ds = da.QQ_Farmer_Search_excleDA(Sessionid);
        if (ds != null)
        {
            dt = ds.Tables[0];
            if (dt != null && dt.Rows.Count > 0)
            {
                //dt.Columns.Add("style", "vnd.ms-excel.numberformat:@");
                //dt.Rows[0]["Birthday"].Add("style", "vnd.ms-excel.numberformat:@");
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Charset = "";
                HttpContext.Current.Response.ContentType = "application/vnd.ms-xls";
                HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(DateString + ".xls"));
                StringBuilder table = new StringBuilder();
              
                table.Append("<table style='border:1px solid #000000'><tr>");
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    table.Append("<td>");
                    table.Append(dt.Columns[i].Caption.ToString()); //标格的标题  
                    table.Append("</td>");
                }
                table.Append("</tr>");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    table.Append("<tr>");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        table.Append("<td style='vnd.ms-excel.numberformat:@'>");
                        table.Append(dt.Rows[i][j].ToString());
                        table.Append("</td>");
                    }
                    table.Append("</tr>");
                }
                table.Append("</table>");
                HttpContext.Current.Response.Write(table);
                HttpContext.Current.Response.End(); 

            }
        }

        DataTable thisTable = dt;

        DataTableExcel(dt, DateString,"a|b|c|d");
    }
 
    #region  DataTable导出到Excel
    /// <summary>
    /// DataTable导出到Excel
    /// </summary>
    /// <param name="pData">DataTable</param>
    /// <param name="pFileName">导出文件名</param>
    /// <param name="pHeader">导出标题以|分割</param>
    public static void DataTableExcel(System.Data.DataTable pData, string pFileName, string pHeader)
    {
        System.Web.UI.WebControls.DataGrid dgExport = null;
        // 当前对话
        System.Web.HttpContext curContext = System.Web.HttpContext.Current;
        // IO用于导出并返回excel文件
        System.IO.StringWriter strWriter = null;
        System.Web.UI.HtmlTextWriter htmlWriter = null;
        if (pData != null)
        {
            string UserAgent = curContext.Request.ServerVariables["http_user_agent"].ToLower();
            if (UserAgent.IndexOf("firefox") == -1)//火狐浏览器
                pFileName = HttpUtility.UrlEncode(pFileName, System.Text.Encoding.UTF8);

            curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + pFileName + ".xls");
            curContext.Response.ContentType = "application/vnd.ms-excel";
            strWriter = new System.IO.StringWriter();
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

            // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
            dgExport = new System.Web.UI.WebControls.DataGrid();
            dgExport.DataSource = pData.DefaultView;
            dgExport.AllowPaging = false;
            dgExport.ShowHeader = false;//去掉标题
            dgExport.DataBind();

            string[] arrHeader = pHeader.Split('|');
            string strHeader = "<table border=\"1\" style=\"background-color:Gray;font-weight:bold;\"><tr>";
            foreach (string j in arrHeader)
            {
                strHeader += "<td>" + j.ToString() + "</td>";
            }
            strHeader += "</tr></table>";
            // 返回客户端
            dgExport.RenderControl(htmlWriter);
            string strMeta = "<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>";
            curContext.Response.Write(strMeta + strHeader + strWriter.ToString());
            curContext.Response.End();
        }
    }
    #endregion
    public override void VerifyRenderingInServerForm(Control control)
    {
        // Confirms that an HtmlForm control is rendered for
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值