2

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

有谁知道任何其他数据提供者可以让我直接从数据表中查询数据,如下例所示ACE.OLEDB.12

SELECT * FROM [Main Sheet$IG7:IU9]
4

2 回答 2

1

ADODB一直在使用并且有同样的问题。到处寻找答案,即使在 SO 上,也没有运气。

我发现的唯一解决方法:将数据移动到工作表的开头。如果您的数据从A1eg开始Sheet1,只要您仅引用工作表,您的查询就会拉入额外的行和列,即SELECT * FROM [Sheet1$]。我没有对此进行测试,ACE.OLEDB但它确实适用于ADODB.

于 2014-09-19T09:47:35.663 回答
0

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

于 2014-09-19T09:55:11.407 回答