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 Knowlege Base Article 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(* .accdb)、Excel(* .xlsx)、SharePointリスト、 IMEXパラメータは、同様の方法でこれらの他のタイプのデータソースに影響を与えます。


2017年8月に更新。「Excelへの接続」という見出しの下にある別のドキュメントADO.NET接続文字列構文(docs.microsoft.com)で言及されているように、IMEX拡張プロパティに関する追加のコメント:

[example]接続文字列で、Extended Propertiesキーワードは、Excelに固有のプロパティを設定します。「HDR=はい;」最初の行にデータではなく列名が含まれ、「IMEX=1;」であることを示します。「混合」データ列を常にテキストとして読み取るようにドライバーに指示します

以前のKB記事は引き続き適用され、IMEX設定は、データソース接続文字列内の他の非Excelデータソースへのエクスポート/インポート/リンクとしてより一般的に適用されると思います。また、KBの記事には、「ImportMixedTypes」設定がレジストリを介して変更される可能性があることが示されていることに注意してください。これにより、IMEX設定を説明するKBを優先して、この2番目の記事をほとんど無視する必要があると思います。関連するレジストリ設定は、Access Connectivity Engine(ACE)Excelドライバー@外部データソースのWindowsレジストリ設定-MicrosoftExcelドライバーの初期化について文書化されています。

于 2015-02-17T19:53:17.523 に答える
3

以下の記事によると、0と2のIMEX値は同じことをします。ImportMixedTypes=MajorityTypeを使用します。拡張プロパティでIMEX=1を指定しない場合、これがデフォルトです。

したがって、デフォルトのIMEXの動作はMajorityTypeであり、これは、レジストリ設定ImportMixedTypes=Textとともに接続文字列でIMEX=1を使用することでオーバーライドできます。

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

于 2012-07-11T19:43:09.260 に答える