Цитата:
Сообщение от
erudit
Используя класс ExcelImportADO столкнулся со следущей проблемой - если Excel файл содержит более 65536 строк, то первый вызов функции excelImportADO.eof() возвращает TRUE - что НЕ ВЕРНО, т.к. ещё прохода по строкам не было и соотв. импорт заканчивается не начавшись.
Кто-нибудь сталкивался с подобной проблемой?
У меня не воспроизвелось после отработки такого джоба:
X++:
#CCADO
static void Job333_gl00mieExcelImportADO(Args _args)
{
ExcelImportADO doc = new ExcelImportADO(@'C:\Test_gl00mie.xlsx', #adOpenStatic);
;
doc.openFile(false);
while(!doc.eof())
{
print doc.getFieldValue(1,false);
doc.moveNext();
}
}
Всё замечательно отрабатывает. Файл C:\Test_gl00mie.xlsx содержит на первом листе слово Field1 в ячейке A1 и ниже от ячейки A2 до A70000 соответственно числа от 2 до 70 тыщ.
Ну и в Class Declaration класса надо заменить шаблон строки подключения на рекомендацию AndyD'а:
Цитата:
Сообщение от
AndyD
X++:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + %1 + ";Extended Properties='Excel 12.0'"
А вы openFile не забыли у себя сделать? А то .eof() возвращает true и когда recordset = null.