日期:2014-05-18  浏览次数:20938 次

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中后,你就可以操作了。