Показать сообщение отдельно
Старый 30.01.2007, 20:59   #24  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Иван, так первая строка интерпретируется как заголовок столбцов.
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
__________________
Axapta v.3.0 sp5 kr2