OLEDB не возвращает первую строку файла excel

Я использую Microsoft.ТУЗ.Oledb для.12.0 для подключения к файлу Microsoft excel и извлечения из него данных. Я пишу код на языке C# с помощью Visual Studio 2012, так. вот мой код:

public DataTable getData(string fileName, string sheetName)
{
    connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" 
                      + fileName
                      + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'";

    errorCode = ErrorDefinition.ERROR_NOERROR;
    errorMessage = "";
    DataTable dt = new DataTable();            
    try
    {
            string query = "SELECT * FROM [" + sheetName + "]";
            OleDbConnection con = new OleDbConnection(connectionString);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, con);
            dataAdapter.Fill(dt);
    }
    catch (Exception exp)
    {
            errorCode = ErrorDefinition.ERROR_OLEDBERROR;
            errorMessage = exp.Message;
    }
    return dt;
}

проблема в том, что dt Не содержит первую строку указанного листа в файле. Что с ним не так? Любая помощь приветствуется заранее.

2 ответов


в строке подключения используется параметр "HDR=YES", Это означает, что первая строка вашего файла Excel обрабатывается OleDb как имена полей таблицы, возвращаемые с текущего листа.

используя "HDR=NO" указывает OleDb, что первая строка содержит данные, а имена столбцов автоматически называются в прогрессии. как "F1", "F2", " F3 " etc....


попробовать HDR=NO в строке подключения