c#Excel跳过第一行?

时间:2011-07-14 08:44:15

标签: c# asp.net excel

我正在使用OleDbCommand将xls文件导入ds。我遇到的问题是在我的ds的foreach期间跳过第一排。我无法弄清楚为什么。有什么建议吗?

cmd.CommandText = string.Format("SELECT * FROM [{0}$]", worksheetName);
conn.Open();

var adapter = new OleDbDataAdapter();
var ds = new DataSet();
adapter.SelectCommand = cmd;
adapter.Fill(ds);
var table = ds.Tables[0];

foreach(DataRow row in table.Rows){ // rest of my code }

3 个答案:

答案 0 :(得分:14)

更改连接字符串(如评论中所述):

string cnn = string.Format( 
    "Provider=Microsoft.ACE.OLEDB.12.0;" +
    "data source={0}{1}{2};" +
    "Extended Properties=Excel 8.0;", 
    fileLocation, fileName, fileExtension);

为:

string cnn = string.Format( 
    "Provider=Microsoft.ACE.OLEDB.12.0;" +
    "data source={0}{1}{2};" +
    "Extended Properties=Excel 8.0;HDR=No", 
    fileLocation, fileName, fileExtension);

答案 1 :(得分:7)

检查您的连接字符串。它很可能包含:

HDR=Yes

表示第一行是标题

答案 2 :(得分:0)

也许你已经告诉它跳过第一排。我记得一个听起来像FirstRowIsHeader的属性。我认为如果设置为true,那么它会跳过。这可以在您创建连接时更改