Excel 変換先
Excel 変換先は、Microsoft Excel ブックのワークシートまたは範囲にデータを読み込みます。
Excel 変換先には、データを読み込むために、次の 3 つの異なるデータ アクセス モードが用意されています。
テーブルまたはビュー。
変数で指定されたテーブルまたはビュー。
SQL ステートメントの結果。クエリにはパラメーター化クエリを使用できます。
重要 |
---|
Excel でのワークシートまたは範囲は、テーブルまたはビューに相当します。Excel ソース エディターと Excel 変換先エディターで使用できるテーブルの一覧では、既存のワークシート (Sheet1$ など、ワークシート名に $ 記号を付加して識別) と名前付き範囲 (MyRange など、$ 記号が付かないことで識別) のみが表示されます。 |
Excel 変換先は、Excel 接続マネージャーを使用してデータ ソースに接続します。Excel 接続マネージャーでは、使用する Excel ブック ファイルを指定します。詳細については、「Excel 接続マネージャー」を参照してください。
Excel 変換先は、1 つの標準入力と 1 つのエラー出力をとります。
使用に関する注意点
Excel 接続マネージャーは、Microsoft OLE DB Provider for Jet 4.0 と、それによってサポートされる Excel ISAM (Indexed Sequential Access Method) ドライバーを使用して Excel データ ソースに接続し、データの読み取りおよび書き込みを行います。
Microsoft サポート技術情報に含まれる資料の多くは、このプロバイダーおよびドライバーの処理に関するドキュメントです。これらの資料は Integration Services または従来のデータ変換サービスに固有のものではありませんが、予期しない結果が発生する可能性のある特定の動作について知っておくことをお勧めします。Excel ドライバーの使用および動作に関する一般情報については、「[HOWTO] Visual Basic または VBA から ADO を Excel データで使用する」を参照してください。
Excel ドライバーに含まれる Jet プロバイダーの次のような動作が原因で、Excel 変換先にデータを保存するときに予期しない結果が発生する場合があります。
テキスト データの保存。Excel ドライバーでテキスト データの値を Excel 変換先に保存するときに、保存される値が確実にテキスト値として解釈されるように、ドライバーによって各セルに単一引用符が追加されます。保存されたデータの読み取りや処理を行う他のアプリケーションがあるか、または開発する場合、各テキスト値の前に付けられた単一引用符に対する特殊な処理を含める必要があります。
メモ (ntext) データの保存。255 文字を超える文字列を Excel 列に正常に保存するには、変換先の列のデータ型を文字列型ではなくメモ型としてドライバーが認識する必要があります。変換先のテーブルに既にデータ行が含まれている場合、ドライバーによってサンプリングされた先頭の数行のメモ列に、255 文字を超える値のインスタンスが 1 つ以上含まれている必要があります。変換先のテーブルがパッケージの設計時または実行時に作成される場合は、CREATE TABLE ステートメントで LONGTEXT (またはそのいずれかのシノニム) をメモ列のデータ型として使用する必要があります。
データ型。Excel ドライバーでは、データ型の限定されたセットのみを認識します。たとえば、すべての数値列は倍精度浮動小数点型 (DT_R8) として解釈され、すべての文字列の列 (メモ列以外) は 255 文字の Unicode 文字列 (DT_WSTR) として解釈されます。Integration Services では、Excel データ型を次のようにマップします。
Numeric 倍精度浮動小数点数 (DT_R8)
Currency 通貨 (DT_CY)
Boolean ブール (DT_BOOL)
Date/time datetime (DT_DATE)
String Unicode 文字列、長さ 255 (DT_WSTR)
Memo Unicode テキスト ストリーム (DT_NTEXT)
データ型と長さの変換。Integration Services では、データ型の暗黙な変換が行われません。したがって、派生列変換またはデータ変換の変換を使用して、Excel データを明示的に変換してから Excel 以外の変換先に読み込むか、Excel データを Excel 以外のデータに変換してから Excel 変換先に読み込む必要があります。この場合、初期パッケージを作成する際に、必要な変換を構成できるインポート ウィザードおよびエクスポート ウィザードを使用すると便利な場合があります。必要な変換の例を次に示します。
特定のコードページを使用した Unicode Excel 文字列の列と Unicode 以外の文字列の列間の変換
255 文字の Excel 文字列の列と異なる長さの文字列の列間の変換
倍精度の Excel 数値列と他の型の数値列の列間の変換
Excel 変換先の構成
プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。
[Excel 変換先エディター] ダイアログ ボックスで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。
[詳細エディター] ダイアログ ボックスには、プログラムによって設定できるすべてのプロパティが反映されます。[詳細エディター] ダイアログ ボックスまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。
プロパティの設定方法の詳細については、「データ フロー コンポーネントのプロパティを設定する方法」を参照してください。
複数の Excel ファイルをループ処理する方法については、「Foreach ループ コンテナーを使用して Excel のファイルおよびテーブルをループ処理する方法」を参照してください。
外部リソース
dougbert.com のブログ「Integration Services における Excel (パート 1/3): 接続とコンポーネント」
dougbert.com のブログ「Integration Services における Excel (パート 2/3): テーブルとデータ型」
dougbert.com のブログ「Integration Services における Excel (パート 3/3): 問題点と対処法」
|