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....