將數據源DataSet導出成Excel表格形式

//DataSet導出成Excel
        public void GetExcel(DataTable dtData)
        {
            System.Web.UI.WebControls.GridView dgExport = null;
            // 當前對話
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            // IO用於導出並返回excel文件
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;

            if (dtData != null)
            {
                // 設置編碼和附件格式
                System.Web.HttpContext.Current.Response.Clear();
                System.Web.HttpContext.Current.Response.HeaderEncoding = System.Text.Encoding.GetEncoding("gb2312");

                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + dtData.TableName + DateTime.Today.ToShortDateString() + ".xls"); //定義輸出文件和文件名
                curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;

                System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;

                curContext.Response.Charset = "";

                // 導出excel文件
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

                dgExport = new System.Web.UI.WebControls.GridView();
                dgExport.DataSource = dtData.DefaultView;
                dgExport.AllowPaging = false;
                dgExport.DataBind();

                dgExport.RenderControl(htmlWriter);
                curContext.Response.Write(strWriter.ToString());
                curContext.Response.End();

            }

        }

 

 

如果要導出的DataSet是根據用戶特定的查詢條件得來綁定到顯示的控制(DataGrid..等上面)
在這個方法中獲取不到值的時候,可以將值取出的時候放到頁面緩存中。。。

如:ViewState["DataSet"] = ds;
       DataSet ds = (DataSet)ViewState["DataSet"]; 然後轉成DataTable


如果導出的數據中有日期格式需要轉換的
我介意,在進行sql語句查詢的時候就轉換過來,以免後面難操作
如:select replace(CONVERT(varchar(12),fldDate, 102) as 日期 可以將日期的格式轉換成 yyyy-MM-dd
其他的格式轉換可以參考我以前的文章,有一篇是常用的格式轉換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章