C# 读取一个excel的数据,然后做成一个table表,接着我想对它里面的数据进行归类筛选
dataGridView2.DataSource = dt.Tables[0].Select("编号='" + dataGridView1.Rows[i].Cells[3].ToString() + "'");\\(dt是已经绑定好数据的了!)
就出现RT所示
------解决方案--------------------
假定存在一个文件 E:\Book1.xls
里面有如下的数据:
Name	Sex	Address
李强	男	沈阳市
张楠	女	大连市
  private void button2_Click(object sender, EventArgs e)
       {
           DataSet ds = ExcelToDS(@"E:\Book1.xls", "Sheet1");
           foreach (DataTable dt in ds.Tables)
           {
               foreach (DataRow dr in dt.Rows)
               {
                   //过滤数据
               DataRow[] dr1=dt.Select("address='沈阳'");
               //显示过滤后的数据
               foreach (DataRow dr in dr1)
               {
                   Console.WriteLine(dr[0].ToString() + "**" + dr[1].ToString() + "**" + dr[2].ToString());
               }                    Console.WriteLine(dr[0].ToString() + "**" + dr[1].ToString());
               }
           }
       }
       /// <summary>
       /// 将Excel中的内容读取到DataSet中
       /// </summary>
       /// <param name="Pathm">Excel文件得路径</param>
       /// <param name="TableName">Excel中要读取的Sheet名</param>
       /// <returns></returns>
       public static DataSet ExcelToDS(string Pathm, string TableName)
       {
           DataSet ds = new DataSet();
           try
           {
               string strConn = " Provider=Microsoft.Jet.OLEDB.4.0; " + " Data Source= " + Pathm + " ; " + " Extended Properties=Excel 8.0; ";
               OleDbConnection conn = new OleDbConnection(strConn);
               conn.Open();
               string strExcel = "";
               OleDbDataAdapter myCommand = null;
               strExcel = string.Format(" select * from [{0}$] ", TableName);
               myCommand = new OleDbDataAdapter(strExcel, strConn);
               myCommand.Fill(ds, TableName);
           }
           catch (Exception ex)
           {
               System.Windows.Forms.MessageBox.Show(ex.Message);
           }
           return ds;
       }
试试 上面的代码
导入到 Dataset中后,你就可以操作了。