Home » excel » asp.net – c# Excel skipping first row?

asp.net – c# Excel skipping first row?

Posted by: admin March 9, 2020 Leave a comment

Questions:

I’m importing an xls file using OleDbCommand to a ds. Problem I’m having is during the foreach on my ds its skipping for first row. I can’t figure out why. Any suggestions?

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 }
How to&Answers:

Change the connection string (as mentioned in comment) from:

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

to:

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);

Answer:

Check your connection string. Most likely it contains:

HDR=Yes

which indicates that first row is a header

Answer:

Maybe you’ve told it to skip first row. I remember a property that sounds something like FirstRowIsHeader. I think if that is set to true, then it skips. this can be changed at point you create your connection