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

我目前使用ACE.OLEDB.12查询Excel数据表,我遇到了令人沮丧的供应商的限制。 提供程序只能解决前256列和65536行问题,所以如果我将任何数据表定位在该窗口之外,则引擎会返回未find范围的错误消息。

有谁知道任何其他的数据提供者,将允许我直接从数据表中查询数据,如下面的例子使用ACE.OLEDB.12

 SELECT * FROM [Main Sheet$IG7:IU9] 

我始终使用ADODB ,并具有相同的问题。 在任何地方都能find答案,即使在SO上 ,也没有运气。

唯一的解决方法,我发现:将您的数据移动到工作表的开始。 如果您的数据从例如Sheet1中的A1开始,那么只要您只引用表单,即SELECT * FROM [Sheet1$] ,您的查询就会拉入其他行和列。 我没有用ACE.OLEDBtesting过,但是确实可以和ADODB

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