XiYO

现实不同情弱者,命运不相信眼泪。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通用Excel导出方法

Posted on 2011-03-11 09:18  XiYO  阅读(216)  评论(0)    收藏  举报

 public void ExportExcel(Queue st, ref DataSet ds,string excelname)
{
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "UTF-8";
            Response.AppendHeader("Content-Disposition", "attachment;filename="+excelname);
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            this.EnableViewState = false;
            System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", false);
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            string sMeta = "<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>";
            Response.Write(sMeta);
            DataGrid dgExport = new DataGrid();
            dgExport.AutoGenerateColumns =true;
            BoundColumn bdc;
            string s;
            if (st != null)
            {
                dgExport.AutoGenerateColumns = false;
                while (st.Count > 0)
                {
                    bdc = new BoundColumn();
                    s = st.Dequeue().ToString();
                    bdc.DataField = s.Remove(s.IndexOf('='));
                    bdc.HeaderText = s.Replace(bdc.DataField + "=", string.Empty);
                    dgExport.Columns.Add(bdc);
                    bdc = null;
                }
            }
            dgExport.DataSource = ds;
            dgExport.DataBind();
            dgExport.RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());
            ds.Dispose();
            dgExport.Dispose();
            oStringWriter.Close();
            oHtmlTextWriter.Close();
            oStringWriter.Dispose();
            oHtmlTextWriter.Dispose();
            Response.End();
}

调用

1.创建一个队列,把要导出的数据列加入到队列中

 Queue q = new Queue();
q.Enqueue("字段名(name)=导出名称(姓名)");

2.调用

ExportExcel(q, ref ds, "*.xls");