2010-08-06 62 views
1

我的excelC#读取Excel问题

|Name|Telephone| 
|Color|Car| 
|John|Jon| 

我需要 “|约翰|乔恩|”如何选择OleDbCommand?第三排发车

我Csharp的不工作代码:

ExcelCommand.CommandText = @"SELECT * FROM " + SpreadSheetName + " Where RowNumber > 3"; 

谢谢...

回答

1

这对我有效。您可以根据需要更改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()); 
    } 
} 
0

可以代替 “ROWNUMBER> 3” 使用 “ROWNUMBER = 3”。 “|约翰|乔恩|” - 第三排。

+0

不工作请帮我excelCommand.CommandText = @“SELECT * FROM”+ SpreadSheetName +“Where RowNumber = 3”; – Chicharito 2010-08-06 12:55:14

+0

错误:未给出一个或多个必需参数的值。 – Chicharito 2010-08-06 12:57:31

+0

可以尝试这样的语法:SELECT * FROM [+“SpreadSheetName”+ $ A3:B3] 其中$ A3:B3 - 单元格范围 – Anton 2010-08-06 14:15:58