Первый элемент в Excel пропущен в результатах (DataSet, OleDB) - PullRequest
0 голосов
/ 03 апреля 2009

[Sample.xlsx]

Column 0, Row 0 = "ItemA"    
Column 0, Row 1 = "ItemB"    
Column 0, Row 2 = "ItemC"    
Column 0, Row 3 = "ItemD"

[Application]

DataSet dsData = new DataSet();    
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Sample.xlsx;Extended Properties='Excel 12.0;'";    
OleDbDataAdapter daGetExcel = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);    
daGetExcel.Fill(dsData);        

foreach (DataRow row in dsData.Tables[0].Rows) 
{ 
    lbExcelData.Items.Add(row[0].ToString()); 
}

lbExcelData - это элемент управления ListBox в форме.

[Результаты]

"ItemB", "ItemC", "ItemD"

[ПРОБЛЕМА]

Почему игнорируется первый элемент, "ItemA"?

Ответы [ 2 ]

4 голосов
/ 03 апреля 2009

Для Excel установите HDR = NO в настройке расширенных свойств строки подключения.

"Поставщик = Microsoft.ACE.OLEDB.12.0; Источник данных = Sample.xlsx; Расширенные свойства =" Excel 12.0; HDR = НЕТ ""

http://connectionstrings.com/excel-2007

0 голосов
/ 03 апреля 2009

Я считаю, что ваша строка подключения в этом случае должна быть:

string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=Sample.xlsx;Extended Properties='Excel 12.0;HDR=NO;'";
...