5
string strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\";";

我在谷歌上搜索,并没有得到任何结果。我认为默认值为 2,但我不确定。

任何人都可以帮助我吗?谢谢。

4

2 回答 2

14

虽然我没有找到有关默认值的信息,但 @Bao 的评论有助于解释 IMEX 设置。根据Microsoft 知识库文章 194124,IMEX 参数代表IM端口EX端口模式。这是文章的引述:

IMEX 的可能设置是:

 0 is Export mode
 1 is Import mode
 2 is Linked mode (full update capabilities)

简单来说,您可以使用 IMEX=0 表示写入,IMEX=1 表示只读,IMEX=2 表示修改/更新(读取、更改、保存更改)。

我注意到这个问题被标记为 Excel,但 Microsoft.ACE.OLEDB 提供程序允许连接到 Access 数据库引擎支持的多种类型的数据源,包括 Access (*.accdb)、Excel (*.xlsx)、SharePoint Lists、等等。 IMEX 参数将以类似的方式影响这些其他类型的数据源。


2017 年 8 月更新。关于 IMEX扩展属性的其他评论,如另一个文档ADO.NET 连接字符串语法(docs.microsoft.com) 在标题“连接到 Excel”下所述:

在 [example] 连接字符串中,Extended Properties关键字设置特定于 Excel的属性。“HDR=是的;” 表示第一行包含列名,而不是数据,并且“IMEX=1;” 告诉驱动程序始终将“混合”数据列读取为 text

我相信之前的知识库文章仍然适用,并且 IMEX 设置更普遍地应用为导出/导入/链接到数据源连接字符串中的其他非 Excel 数据源。另请注意,知识库文章指出可以通过注册表更改“ImportMixedTypes”设置 - 这使我相信第二篇文章应该大部分被忽略,而支持知识库来解释 IMEX 设置。Access Connectivity Engine (ACE) Excel Driver @ Windows Registry Settings for External Data Sources - Initializing the Microsoft Excel Driver记录了相关的注册表设置。

于 2015-02-17T19:53:17.523 回答
3

根据下面的文章,IMEX 值 0 和 2 做同样的事情;他们使用 ImportMixedTypes=MajorityType。如果您未在扩展属性中指定 IMEX=1,则这是默认设置。

所以默认的 IMEX 行为是 MajorityType,这可以通过在连接字符串中使用 IMEX=1 以及注册表设置 ImportMixedTypes=Text 来覆盖。

http://www.instantpages.ltd.uk/ADODB_WP.htm

于 2012-07-11T19:43:09.260 回答