Иван, так первая строка интерпретируется как заголовок столбцов.
X++:
static void CorrectADOFileImport(Args _args)
{
ExcelImportADO excel;
Counter fieldCount;
Counter curField;
FileNameOpen fileName;
COM adoxCatalog = new COM(@"ADOX.Catalog");
COM Tables;
COM Table;
COM Columns;
COM Column;
int i;
;
filename = WinAPI::getOpenFileName(infolog.hWnd(), ["Microsoft Excel","*.xls"], '', "Выберите файл");
if (!filename)
throw error("@SYS26757");
excel = new ExcelImportADO(fileName);
if (excel.openFile())
{
fieldCount = excel.getFieldsCount();
adoxCatalog.ActiveConnection(excel.getConnection());
Tables = adoxCatalog.Tables();
Table = Tables.Item(0);
if (Table)
{
Columns = Table.Columns();
for (i=0;i<Columns.Count();i++)
{
Column = Columns.Item(i);
if (Column)
info(Column.Name());
}
box::info(int2str(fieldCount));
while (!excel.eof())
{
info(excel.getFieldValue(1, true));
info(excel.getFieldValue(2, true));
info(excel.getFieldValue(3, true));
info(excel.getFieldValue(4, true));
info(excel.getFieldValue(5, true));
for (curField = 6; curField < fieldCount; curField++)
{
info(excel.getFieldValue(curField, true));
}
return; //только первую строку
//excel.moveNext();
}
}
}
}
Класс для импорта взял у
gl00mie