ACE.OLEDB.12的替代方法,用于查询Excel数据表

时间:2014-09-19 08:42:50

标签: sql excel vba oledb aceoledb

我目前正在使用ACE.OLEDB.12查询Excel数据表,我遇到了令人沮丧的提供商限制。提供程序只能处理前256列和65536行,因此如果我将任何数据表放在该窗口之外,引擎会返回错误消息 range not found

是否有人知道任何其他数据提供程序允许我使用ACE.OLEDB.12直接从数据表中查询数据,如下例所示?

SELECT * FROM [Main Sheet$IG7:IU9]

2 个答案:

答案 0 :(得分:0)

我一直使用ADODB并遇到同样的问题。到处寻找答案,甚至是on SO,没有运气。

我找到的 only 解决方法:将数据移至工作表的开头。如果您的数据从A1开始,例如Sheet1,只要您引用工作表,SELECT * FROM [Sheet1$],您的查询就会引入其他行和列。我没有使用ACE.OLEDB对此进行测试,但它确实适用于ADODB

答案 1 :(得分:0)

您可以使用ClosedXML来查询XLSX文件。当然,它没有提供任何SQL功能(相反,它的行为类似于VBA),但其优点是既不需要在目标机器上安装Excel也不需要安装AccessDatabaseEngine。也许它值得一看。