我在Datalist 里放了个Gridview  用于实现如下效果
0500、0530、0600等 是Datalist的数据, 之下的是根据Datalist相应的数据。现在想把整个结果输出到EXCEL 不知道什么做。 
以下是gridview 通过datalist1 获取数据的代码,其它代码没什么特殊的:
        protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
           
            GridView gv = (GridView)e.Item.FindControl("gridview1"); 
            Label lb = (Label)e.Item.FindControl("Label");
            gv.RowStyle.Width = Unit.Pixel(150);
            gv.ShowHeader = false;
            string str = lb.Text;
            string info = "今日新增";
            string sqlstr = string.Format("select name 名称 ,state 序位 , case(CHARINDEX(CONVERT(varchar(100),getdate(), 23),convert(varchar(50),createtime,23)))  when '1' then '{3}' else ' ' end as 排版时间   from layoutlist1 where layoutdate='{0}' and layouttime='{1}' order by layorder,state DESC, createtime", datestr, str, datestr2,info);
            string mydata = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
            SqlConnection sqlconn = new SqlConnection(mydata);
            SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlconn);
            sqlconn.Open();
            DataTable dt = new DataTable();
            da.Fill(dt);
            gv.DataSource = dt;
            gv.DataBind();
            sqlconn.Close();
        }