string strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\";";
我在google上搜索,但没有得到任何结果。我认为默认值是2,但我不确定。
任何人都可以帮助我吗?感谢。
答案 0 :(得分:9)
虽然我没有找到默认信息,但@Bao的评论有助于解释IMEX设置。根据{{3}},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列表等.IMEX参数将以类似的方式影响这些其他类型的数据源。
2017年8月更新。有关IMEX 扩展属性的其他评论,如另一个文档Microsoft Knowlege Base Article 194124(docs.microsoft.com)中提到的标题"正在连接到Excel&# 34; :
在[示例]连接字符串中,扩展属性关键字设置特定于Excel 的属性。 " HDR =是;"表明 第一行包含列名,而不是数据," IMEX = 1;"告诉了 司机总是阅读"混合"数据列为文本。
我认为以前的知识库文章仍然适用,IMEX设置更常用作导出/导入/链接到数据源连接字符串中的其他非Excel数据源。另请注意,KB文章指出" ImportMixedTypes"设置可能会通过注册表更改 - 这使我相信第二篇文章应该被忽略,以支持KB来解释IMEX设置。 Access Connectivity Engine(ACE)Excel驱动程序@ ADO.NET Connection String Syntax记录了相关的注册表设置。
答案 1 :(得分:3)
根据下面的文章,IMEX值0和2做同样的事情;他们使用ImportMixedTypes = MajorityType。如果您未在扩展属性中指定IMEX = 1,那么这是默认值。
因此默认的IMEX行为是MajorityType,可以通过在连接字符串中使用IMEX = 1以及注册表设置ImportMixedTypes = Text来覆盖它。