DataTable導出為Excel


/// <summary>
        /// 導出Excel Datatable版本
        /// </summary>
        /// <param name="dt">導出的Datatable</param>
        /// <param name="ExcelName">導出EXCEL的名稱 不需要要帶有擴展名_xls</param>
        public static void NewExportExcelScore(DataTable dt, string Title, string colHeaders, int cl)
        {
            HttpResponse resp = System.Web.HttpContext.Current.Response;
            string ExcelName = Title + DateTime.Now.ToString("yyyyMMddHHmmss");
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + ExcelName + ".xls");
            string ls_item = "";
            DataRow[] myRow = dt.Select();//可以類似dt.Select("id>10")之形式達到數據篩選目的
            int i = 0;
            //int cl = dt.Columns.Count;
            //取得數據表各列標題,各標題之間以t分割,最后一個列標題后加回車符
            resp.Write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body><table border=1><tr style=\" Gray 1px solid;text-align:center\">");
            //for (i = 0; i < cl; i++)
            //{
            //    colHeaders += "<th>" + dt.Columns[i].Caption.ToString() + "</th>";
            //}
            resp.Write(colHeaders + "</tr>");
            //向HTTP輸出流中寫入取得的數據信息
            //逐行處理數據
            foreach (DataRow row in myRow)
            {
                //當前行數據寫入HTTP輸出流,並且置空ls_item以便下行數據  
                ls_item = "<tr bgcolor=#ABCDC1>";
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        ls_item += "<td>" + row[i].ToString() + "</td></tr>";
                    }
                    else
                    {
                        if (i == 2)
                        {
                            ls_item += "<td style='vnd.ms-excel.numberformat:@'>" + " " + row[i].ToString() + "</td>";//到處后已字符形式顯示
                        }
                        else
                        {
                            ls_item += "<td>" + row[i].ToString() + "</td>";
                        }
                    }
                }
                resp.Write(ls_item);
            }
            resp.Write("</table></body></html>");
            resp.End();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM