ADO OpenSchema (adSchemaColumns) завершается ошибкой для нечетного файла Excel

У меня есть код, который читает заголовки столбцов из файлов MS Excel, используя C ++ & ADO. Я получил этот файл Excel от кого-то, для кого команда OpenSchema (adSchemaColumns) не работает (ошибка: 0x800A0CB3: «Объект или поставщик не может выполнить запрошенную операцию»). Чтобы сузить проблему, я удалил все данные из файла & удалил все столбцы, кроме столбца А. Если я также удаляю столбец А, OpenSchema завершается успешно. Иначе не получится. Я сравнил столбец A с другими столбцами, используя функцию Excel CELL: формат, защита, содержимое: но нет никакой разницы.

В любом случае OpenSchema (adSchemaTables) НЕ дает сбой.

Это отрывок из кода C ++, который я использую, построенный с VS2010:

#import "C:\Program Files\Common Files\System\ADO\msado28.tlb" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")

_ConnectionPtr pCon;
pCon.CreateInstance(__uuidof(Connection))
pCon->Open(connStr, "", "", NULL)
_RecordsetPtr pSchema = NULL;
pSchema = pCon->OpenSchema(adSchemaColumns);

Это ссылка на неисправный файл Excel:
workbook.xls

Я использую MS Excel 2010.

Для воспроизведения: запустить код на неизмененном workbook.xls — не получается. Удалить столбец A — успешно.

Любые идеи приветствуются,

Спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]