这对我有效。您可以根据需要更改SELECT
语句(特定行,多列,...)以获取单个结果或返回的一组行。
string connectionString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=test.xls;";
connectionString += "Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(connectionString);
DataSet ds = new DataSet("stuff");
OleDbDataAdapter adapter = new OleDbDataAdapter();
// adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$A1:A100];", con);
// adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$];", con);
adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$] where [A] = 'John';", con);
adapter.Fill(ds);
foreach (DataRow dr in ds.Tables[0].Rows)
{
foreach (DataColumn dc in ds.Tables[0].Columns)
{
Console.WriteLine(dr[dc].ToString());
}
}
不工作请帮我excelCommand.CommandText = @“SELECT * FROM”+ SpreadSheetName +“Where RowNumber = 3”; – Chicharito 2010-08-06 12:55:14
错误:未给出一个或多个必需参数的值。 – Chicharito 2010-08-06 12:57:31
可以尝试这样的语法:SELECT * FROM [+“SpreadSheetName”+ $ A3:B3] 其中$ A3:B3 - 单元格范围 – Anton 2010-08-06 14:15:58