导出excel,word,html

 //Queue  队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue 中的对象在一端插入,从另一端移除。

       //Queue 的容量是指 Queue 可以保存的元素数。 随着向 Queue 中添加元素,容量通过重新分配按需自动增加。 可通过调用 TrimToSize 来减少容量。

       //等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。 默认增长因子为 2.0。Queue 的容量将始终加 4,无论增长因子是多少。 例如,当需要更大的容量时,增长因子为 1.0 的 Queue 的容量将始终增加四倍。

       //Queue 接受 null 作为有效值并且允许重复的元素。
        Queue q = new Queue();
        q.Enqueue("id=导出名称(姓名)");
        q.Enqueue("uniqueid=谋职");
        q.Enqueue("cartkey=户口");
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        conn.Open();
        DataSet ds = new DataSet();
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM yxs_cart",conn);
        adapter.Fill(ds);
        ExportExcel(q, ref ds, "测试导出.doc");

 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-doc";//设置输出文件类型为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-doc; 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();
    }

如果想导出xls.html等文件  ,只需把上述的word改为xls,html即可

导出大量数据的时候可能会有点慢->个人觉得

posted @ 2011-09-08 11:39  That's me  阅读(270)  评论(0编辑  收藏  举报