.net将一个table导出成excel文件

 #region  将一个table导出成excel文件
        /// <summary>
        /// 将一个table导出成excel文件
        /// </summary>
        /// <param name="tb"></param>
        public void TableToExcel(System.Data.DataTable tb)
        {
            string Filename = "dj";
            System.Web.HttpContext context = System.Web.HttpContext.Current;
            if ((tb != null))
            {
                context.Response.Clear();
                context.Response.Charset = "GB2312";
                context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                context.Response.ContentType = "application/ms-excel";
                context.Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(Filename, System.Text.Encoding.GetEncoding("GB2312")) + ".xls\"");

                System.Globalization.CultureInfo cult = new System.Globalization.CultureInfo("zh-CN", true);
                StringWriter sw = new StringWriter(cult);
                HtmlTextWriter htw = new HtmlTextWriter(sw);
                DataGrid dgrid = new DataGrid();
                dgrid.DataSource = tb.DefaultView;
                dgrid.AllowPaging = false;
                dgrid.DataBind();
                htw.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=GB2312\">");
                dgrid.RenderControl(htw);
                context.Response.Write(sw.ToString());
                context.Response.End();
            }
        }
        #endregion

posted on 2012-01-11 11:13  larryle  阅读(625)  评论(0)    收藏  举报