我目前正在使用ACE.OLEDB.12
查询Excel数据表,我遇到了令人沮丧的提供商限制。提供程序只能处理前256列和65536行,因此如果我将任何数据表放在该窗口之外,引擎会返回错误消息 range not found 。
是否有人知道任何其他数据提供程序允许我使用ACE.OLEDB.12
直接从数据表中查询数据,如下例所示?
SELECT * FROM [Main Sheet$IG7:IU9]
答案 0 :(得分:0)
我一直使用ADODB
并遇到同样的问题。到处寻找答案,甚至是on SO,没有运气。
我找到的 only 解决方法:将数据移至工作表的开头。如果您的数据从A1
开始,例如Sheet1
,只要您引用工作表,SELECT * FROM [Sheet1$]
,您的查询就会引入其他行和列。我没有使用ACE.OLEDB
对此进行测试,但它确实适用于ADODB
。
答案 1 :(得分:0)
您可以使用ClosedXML来查询XLSX文件。当然,它没有提供任何SQL功能(相反,它的行为类似于VBA),但其优点是既不需要在目标机器上安装Excel也不需要安装AccessDatabaseEngine。也许它值得一看。