选择部分记录输出到Excel

    技术2022-05-11  126

    ToExcel.aspx

    < asp:datagrid id = " DataGrid1 "  runat = " server "  Width = " 595px "  AutoGenerateColumns = " False "  PageSize = " 30 "                                 AllowPaging = " True "  BorderWidth = " 1px "  BorderColor = " SeaGreen "  Font - Size = " 12px " >                                  < ItemStyle HorizontalAlign = " Left " ></ ItemStyle >                                  < HeaderStyle HorizontalAlign = " Center " ></ HeaderStyle >                                  < Columns >                                      < asp:TemplateColumn >                                          < HeaderStyle Width = " 40px " ></ HeaderStyle >                                          < ItemStyle HorizontalAlign = " Center " ></ ItemStyle >                                          < ItemTemplate >                                              < asp:CheckBox id = " myselect "  Runat = " server " ></ asp:CheckBox >                                          </ ItemTemplate >                                          < EditItemTemplate >                                              < asp:TextBox id = TextBox1 runat = " server "  Text = ' <%# DataBinder.Eval(Container, "DataItem.id") %> ' >                                              </ asp:TextBox >                                          </ EditItemTemplate >                                      </ asp:TemplateColumn >                                      < asp:ButtonColumn DataTextField = " 公司名称 "  HeaderText = " 公司名称 "  CommandName = " Select " ></ asp:ButtonColumn >                                      < asp:BoundColumn Visible = " False "  DataField = " id " ></ asp:BoundColumn >                                  </ Columns >                                  < PagerStyle HorizontalAlign = " Right "  Position = " Top "  Mode = " NumericPages " ></ PagerStyle >                              </ asp:datagrid >

    Toexcel.aspx.cs

    a.数据绑定

    void  Bind()         {            string CS=this.Application.Get("kehuConnectionString").ToString();                        string myQuery="";                                        myQuery= "SELECT  * from [data] where (id<>null)  ";                    if(Label1.Text.Trim()!="")                 myQuery+=Label1.Text.Trim();                            OleDbConnection myConnection = new OleDbConnection(CS);            myConnection.Open();                        OleDbDataAdapter objDataAdapter=new OleDbDataAdapter(myQuery,myConnection);                    DataSet ds = new DataSet();            objDataAdapter.Fill(ds,"data");            ///            DataTable dt=ds.Tables["data"];                             //            this.DataGrid1.DataSource=dt.DefaultView;            DataGrid1.DataBind();            if(Session["userlist"]!=null)            {                Hashtable ht =(Hashtable)Session["userlist"];                if(ht!=null)                {                    for(int i = 0 ;i<DataGrid1.Items.Count ;i++)                    {                        if (ht.ContainsKey(DataGrid1.Items[i].Cells[2].Text.ToString().Trim()))                            (DataGrid1.Items[i].Cells[0].FindControl("myselect"as CheckBox).Checked = true;                    }                }            }            ds.Clear();            if(myConnection!=null)myConnection.Close();        }

    b.选择

    private   void  check()         {            Hashtable ht = new Hashtable();            if(Session["userlist"]!=null)            {                ht =(Hashtable) Session["userlist"];                if(ht!=null)                {                    for(int i = 0 ;i<DataGrid1.Items.Count ;i++)                    {                        if ( (DataGrid1.Items[i].Cells[0].FindControl("myselect"as CheckBox).Checked)                        {                            if (! ht.ContainsKey(DataGrid1.Items[i].Cells[2].Text.ToString().Trim()))                            {                                ht.Add(DataGrid1.Items[i].Cells[2].Text.ToString().Trim(),DataGrid1.Items[i].Cells[2].Text.ToString().Trim());                            }                        }                        else                        {                            if ( ht.ContainsKey(DataGrid1.Items[i].Cells[2].Text.ToString().Trim()))                            {                                ht.Remove(DataGrid1.Items[i].Cells[2].Text.ToString().Trim());                            }                        }                    }                }            }            else            {                for(int i = 0 ;i<DataGrid1.Items.Count ;i++)                {                    if ( (DataGrid1.Items[i].Cells[0].FindControl("myselect"as CheckBox).Checked)                    {                        ht.Add(DataGrid1.Items[i].Cells[2].Text.ToString().Trim(),DataGrid1.Items[i].Cells[2].Text.ToString().Trim());                    }                }            }            Session["userlist"= ht;        }

    c.输出到excel

    private   void  LinkButton2_Click( object  sender, System.EventArgs e)         {            /*            Hashtable ht = new Hashtable();            if(Session["userlist"]!=null)            {                ht =(Hashtable) Session["userlist"];                if(ht!=null)                {                    ht.Clear();                }            }            */            check();            Hashtable ht =(Hashtable) Session["userlist"];            ///            StringWriter sw=new StringWriter();             string myhead="";                                myhead="联系人 买卖家 部门 职务 公司名称 公司中文名 地址 国别 电话 手机 传真 电子邮件 网址 主营商品类 主营商品 收集日期 收集来源 ";                     sw.WriteLine(myhead);             string mycol="";//int myint=0;            ///            string CS=Application.Get("kehuConnectionString").ToString();            string myQuery="";            OleDbConnection myConnection = new OleDbConnection(CS);            myConnection.Open();            foreach (DictionaryEntry objDE in ht)            {                string myid=objDE.Value.ToString();                      myQuery= "SELECT  联系人,买卖家,部门,职务,公司名称,公司中文名,地址,国别,电话,手机,传真,电子邮件,企业网址,主营商品类,主营商品,收集日期,收集来源 from [data] where id="+myid;                OleDbCommand myCommand= new OleDbCommand(myQuery,myConnection);                OleDbDataReader objDataReader=myCommand.ExecuteReader();                            mycol="";                if(objDataReader.Read())                {                                    for(int j=0;j<17;j++)                        if(!objDataReader.IsDBNull(j))                        {                            if(j==15)                                mycol+=objDataReader.GetDateTime(j).ToShortDateString().Trim() + " ";                             else                                mycol+=objDataReader.GetString(j).Trim() + " ";                         }                        else{                                                    mycol+= " ";                         }                                                sw.WriteLine(mycol);                     }                    objDataReader.Close();                        }                if(myConnection!=null)myConnection.Close();            Response.AddHeader("Content-Disposition""attachment; filename=RESULT.XLS");             Response.ContentType = "application/ms-excel";             Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");             Response.Write(sw);             Response.End();             sw.Close();        }             }}

     


    最新回复(0)