C#导出Excel

    /// <summary>
    /// 导出
    /// </summary>
    protected void linkExport_Click(object sender, EventArgs e)
    {
        if (this.gvApproveList.Rows.Count < 50000)
        {
            HttpResponse response = HttpContext.Current.Response;
            response.Clear();
            response.BufferOutput = true;
            response.Cache.SetCacheability(HttpCacheability.Private);// 缓存使可以不保存就打开
            response.Cache.SetExpires(DateTime.Now);// 立即过期
            response.AppendHeader("content-Type", "application/vnd.ms-excel");
            response.AppendHeader("Content-Disposition", "attachment; filename =ExamineAndApprove" + DateTime.Now.ToString("yyyyMMdd") + ".xls");

            response.Write(@"<meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"">");
            response.Write("<table border=\"1\" style=\"font-family: 宋体, Arial, sans-serif; font-size: 9.5pt;\">\r\n");
            response.Write("<tr>");
            response.Write("<th>申请单号</th>");
            response.Write("<th>申请类型</th>");
            response.Write("<th>厂商</th>");
            response.Write("<th>供应商</th>");
            response.Write("<th>金额</th>");
            response.Write("<th>币种</th>");
            response.Write("<th>部门</th>");
            response.Write("<th>申请人</th>");
            response.Write("<th>申请日期</th>");
            response.Write("<th>申请原因</th>");
            response.Write("<th>附件</th>");
            response.Write("<th>审批状态</th>");
            response.Write("</tr>\r\n");

            string sqlStr = this.GetSqlStr();

            SqlDataReader reader = ObjectOperation.ExecuteReader(sqlStr);

            while (reader.Read())
            {
                response.Write("<tr>");
                response.Write("<td>" + reader["BillNo"].ToString() + "</td>");
                response.Write("<td>" + reader["RequestType"].ToString() + "</td>");
                response.Write("<td>" + reader["FactoryName"].ToString() + "</td>");
                response.Write("<td>" + reader["SupplierName"].ToString() + "</td>");
                response.Write("<td>" + reader["Amount"].ToString() + "</td>");
                response.Write("<td>" + reader["CurrencyID"].ToString() + "</td>");
                response.Write("<td>" + reader["Department"].ToString() + "</td>");
                response.Write("<td>" + reader["CreateUser"].ToString() + "</td>");
                response.Write("<td>" + (reader["CreateTime"].ToString().Length == 0 ? "" : Convert.ToDateTime(reader["CreateTime"].ToString()).ToString("yyyy-MM-dd")) + "</td>");
                response.Write("<td>" + reader["Cause"].ToString() + "</td>");
                response.Write("<td>" + (reader["ISHas"].ToString().Length == 0 ? "无" : "有") + "</td>");
                response.Write("<td>" + reader["ApproveStatus"].ToString() + "</td>");
                response.Write("</tr>");
            }

            response.Write("</table>\r\n");

            response.Flush();
            response.End();
        }
        else
        {
            this.ShowMessage = "导出数据超过50000条,请增加查询条件,分批导出数据!";
        }
    }

posted @ 2013-08-12 10:34  Johan-Choi  阅读(123)  评论(0)    收藏  举报