Альтернатива ACE.OLEDB.12 для запроса таблиц данных Excel
Я сейчас пользуюсь ACE.OLEDB.12
для запроса таблиц данных Excel, и я столкнулся с ограничением с провайдером, который расстраивает. Поставщик может обращаться только к первым 256 столбцам и 65536 строкам, поэтому, если я размещу любую из моих таблиц данных за пределами этого окна, ядро вернется с сообщением об ошибке " диапазон не найден".
Кто-нибудь знает какого-либо другого поставщика данных, который позволит мне запрашивать данные непосредственно из таблиц данных, как в примере ниже, используя ACE.OLEDB.12
?
SELECT * FROM [Main Sheet$IG7:IU9]
2 ответа
Я использую ADODB
все время и имеют одну и ту же проблему. Искал ответ везде, даже на ТА, без удачи.
Единственный обходной путь, который я нашел: переместить ваши данные в начало листа. Если ваши данные начинаются с A1
в например Sheet1
Ваш запрос будет извлекать дополнительные строки и столбцы, если вы ссылаетесь только на лист, т.е. SELECT * FROM [Sheet1$]
, Я не проверял это с ACE.OLEDB
но это точно работает с ADODB
,
Вы можете использовать ClosedXML для запроса файлов XLSX. Конечно, он не предлагает никаких функций SQL (вместо этого он ведет себя подобно VBA), но имеет то преимущество, что на целевом компьютере не нужно устанавливать ни Excel, ни AccessDatabaseEngine. Может быть, это стоит посмотреть.