これを実現するための優れた方法はたくさんありますが、他の人はすでに提案しています。「SQLトラックを介してExcelデータを取得する」に続いて、ここにいくつかの指針があります。
Excelには「データ接続ウィザード」があり、別のデータソースから、またはまったく同じExcelファイル内でもインポートまたはリンクできます。
Microsoft Office(およびOS)の一部として、関心のある2つのプロバイダーがあります。古い「Microsoft.Jet.OLEDB」と最新の「Microsoft.ACE.OLEDB」です。接続を設定するとき(データ接続ウィザードなど)にそれらを探します。
Excelブックに接続すると、ワークシートまたは範囲はテーブルまたはビューに相当します。ワークシートのテーブル名は、ドル記号( "$")が追加され、角括弧( "["および "]")で囲まれたワークシートの名前です。範囲の、それは単に範囲の名前です。名前のないセル範囲をレコードソースとして指定するには、角括弧内のシート名の最後に標準のExcelの行/列表記を追加します。
ネイティブSQLは(多かれ少なかれ)MicrosoftAccessのSQLになります。(以前はJET SQLと呼ばれていましたが、Access SQLは進化しており、JETは廃止された古い技術だと思います。)
ワークシートを読む例: SELECT * FROM [Sheet1$]
例、範囲の読み取り: SELECT * FROM MyRange
例、名前のないセル範囲の読み取り: SELECT * FROM [Sheet1$A1:B10]
あなたが詳細を処理するのを助けるために利用できる多くの多くの本とウェブサイトがあります。
===その他の注意事項===
デフォルトでは、Excelデータソースの最初の行に、フィールド名として使用できる列見出しが含まれていると想定されています。そうでない場合は、この設定をオフにする必要があります。そうしないと、データの最初の行が「消えて」フィールド名として使用されます。これはHDR= setting
、接続文字列の拡張プロパティにオプションを追加することによって行われます。指定する必要のないデフォルトはHDR=Yes
です。列見出しがない場合は、HDR=No
;を指定する必要があります。プロバイダーは、フィールドにF1、F2などの名前を付けます。
ワークシートの指定に関する注意:プロバイダーは、データのテーブルが、指定されたワークシートの最上部、左端、空白でないセルで始まると想定しています。つまり、データのテーブルは、行3、列Cから問題なく開始できます。ただし、たとえば、セルA1のデータの左上にワークシートのタイトルを入力することはできません。
範囲の指定に関する注意:ワークシートをレコードソースとして指定すると、スペースが許す限り、プロバイダーはワークシートの既存のレコードの下に新しいレコードを追加します。範囲(名前付きまたは名前なし)を指定すると、Jetは、スペースが許す限り、範囲内の既存のレコードの下に新しいレコードも追加します。ただし、元の範囲で再クエリを実行すると、結果のレコードセットには、範囲外で新しく追加されたレコードは含まれません。
Cのデータ型(試す価値があります)REATE TABLE: Short, Long, Single, Double, Currency, DateTime, Bit, Byte, GUID, BigBinary, LongBinary, VarBinary, LongText, VarChar, Decimal
。
「古い技術」のExcel(xls拡張子を持つファイル)への接続:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyFolder\MyWorkbook.xls;Extended Properties=Excel 8.0;
。Microsoft Excel 5.0および7.0(95)ブックにはExcel 5.0ソースデータベースタイプを使用し、Microsoft Excel 8.0(97)、9.0(2000)および10.0(2002)ブックにはExcel8.0ソースデータベースタイプを使用します。
「最新の」Excel(xlsxファイル拡張子を持つファイル)への接続: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Excel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;"
データをテキストとして扱う:IMEX設定は、すべてのデータをテキストとして扱います。 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Excel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";
(詳細については、http://www.connectionstrings.com/excelを参照してください)
詳細については、http://msdn.microsoft.com/en-US/library/ms141683(v = sql.90).aspxおよびhttp://support.microsoft.com/kb/316934を参照してください。
http://support.microsoft.com/kb/257819で詳しく説明されているVBAを介したADODBを介したExcelへの接続
Microsoft JET 4の詳細(http://support.microsoft.com/kb/275561)