0 / 0
資料の 英語版 に戻る

Excelステージをターゲットとして設定するDataStage

最終更新: 2025年3月12日
DataStage での Excel ステージのターゲットとしての構成

Microsoft Excelファイルを生成するようにExcelステージを設定できます。 Excel ステージの各入力リンクは、個別の Microsoft Excel シートに関連付けられます。 Microsoft Excel シートには、Sheet1Sheet2Sheet3 などのように、入力リンクに関連した名前が付けられます。 入力リンクの各列は、マイクロソフト・エクセルの列にマッピングされる。

Excelステージは、ターゲットファイルとしてMicrosoft ExcelファイルのOOXML(.xlsx)フォーマットのみをサポートしています。

Excel ステージでは、ランタイム列伝搬をサポートしています。 上流ステージの出力リンクで実行時の列伝搬が有効になっている場合、Excelステージで定義されている列の後に、伝搬された列が追加で追加されます。

Excel ステージでは、.xls ファイルおよびパスワードで暗号化されたファイルの生成はサポートされません。

エクセルステージをターゲットとして設定するには:
  1. 平行キャンバス上でExcelステージをダブルクリックし、詳細ペインのプロパティセクションを開きます。
  2. 「書き込みモード」リストから、「ファイルの作成」を選択します。
  3. 出力ファイルセクションで、以下の設定を行う:
    1. オプション:データ資産を作成するを選択すると、ジョブの実行が完了したときにデータ資産としてファイルが作成されます。 新しいデータ資産が、プロジェクトの「資産」タブのデータ資産のリストに表示されます。
    2. オプション:Writeメソッドを指定する。 複数のファイルを生成]を選択すると、Excelステージは追加のプロパティ設定に基づいて複数のMicrosoft Excelファイルを作成します。 Specific fileを選択すると、ExcelステージはFile nameプロパティで指定された名前のMicrosoft Excelファイルを作成します。
    3. ファイル名フィールドに、データを書き込むMicrosoft Excelファイルのフルパス名を指定します。 パス名 /ds-storage/PXRuntime/Projects/<projectid>/<filename> を使う。
    4. オプション: ファイル更新モードを指定します。 Create (Error if exists)を選択した場合、対象のMicrosoft Excelファイルがすでに存在すると、ジョブの実行に失敗します。 上書き]を選択すると、Excelステージは既存のファイルを上書きします。
  4. 「プロパティー」セクションで、以下を指定します。
    1. オプション:列の幅を調整するを選択します。 Yesを選択すると、Excelステージは生成されたMicrosoft Excelシートの各列の幅を列の内容に合わせて調整します。
  5. 保存 をクリックします。

複数のエクセルファイルへのデータ書き込み

Excel ステージを使用すると、大量のデータがある場合に、複数の Microsoft Excel ファイルにデータを書き込むことができます。

Microsoft Excel (.xlsx)のOOXMLフォーマットでサポートされるレコード数の最大値は1,048,576です。 入力リンクに 1,048,576 を超えるレコードがある場合は、それらのレコードを複数の Microsoft Excel ファイルに分割する必要があります。 リンクのレコード数が 1,048,576 を超えない場合でも、大容量の Microsoft Excel ファイルを開くには大量のメモリーが必要になるため、それらのレコードを複数の Microsoft Excel ファイルに書き込むことをお勧めします。

複数のExcelファイルにデータを書き込む
  1. パラレル・キャンバスで、Excel ステージをダブルクリックします。
  2. 「書き込みモード」リストから、「ファイルの作成」を選択します。
  3. 出力ファイルセクションで、以下を指定する:
    1. 「書き込み方式」リストから、「複数のファイルの生成」を選択します。 Excel ステージでは、「ファイル名」フィールドに指定された場所に複数の Microsoft Excel ファイルが作成されます。
    2. 「ファイル名」フィールドに、複数の Microsoft Excel ファイルを作成する場所を指定します。

      ファイルの場所に続いて、ファイル名の接頭辞を指定することができます。 例えば、C:\tmp で Microsoft Excel ファイルを作成し、ファイル名の接頭部として Sample を使用する場合は、「ファイル名」フィールドに C:\tmp\Sample を指定します。 Excel ステージでは、接頭部に 3 桁の連続番号とファイル拡張子 (.xlsx) を付加します。 ファイルの数が 999 を超える場合、ファイル名には必要な桁数が含まれます。

    3. オプション: ファイル更新モードを指定します。 Create (Error if exists)を選択した場合、対象のMicrosoft Excelファイルがすでに存在すると、ジョブの実行に失敗します。 「上書き」(デフォルト設定) を選択すると、Excel ステージは既存のファイルを上書きします。
  4. 「プロパティー」セクションで、以下を指定します。
    1. 「シート内の行の最大数」を指定します。 デフォルトは 65536 です。 この数値には、「列ヘッダー」リストから「列名」を選択した場合の列名の行が含まれます。
  5. OK」をクリックします。

既存のExcelファイルにデータを書き込む

Excelステージを使用して、既存のMicrosoft Excelファイルにデータを書き込むジョブや、Excelファイルをコピーしてコピーにデータを書き込むジョブを設計できます。 1 つの Excel ステージで一度に更新できる Microsoft Excel ファイルは 1 つです。 1つのジョブで同じMicrosoft Excelファイルを更新するExcelステージは1つだけです。

Excel ステージが既存の Microsoft Excel ファイルにデータを書き込む場合、ステージはセル・データのみを書き込みます。 ステージが書き込む Microsoft Excel セルに何らかのフォーマットがある場合、ステージは既存のフォーマットを保持します。 Microsoft Excel ファイルに、Excel ステージによって書き込まれたセルを参照する数式またはグラフが含まれている場合、その数式またはグラフは、Microsoft Excel によって開かれたときに再計算されます。

どのDataStage®列からでも、Microsoft Excel列に書き込むことができます。 DataStage列とMicrosoft Excel列の名前と順序は一致する必要はありません。 Microsoft Excel シートの最初の行にヘッダーがある場合は、最初の行の値を使用してレコードの書き込み先の列を決定するように Excel ステージを構成できます。 Microsoft Excel シートには最大 1,048,576 行を書き込むことができます。 ソースDataStageカラムは、設計時に定義する必要があります。

既存のファイルにデータを書き込む:
  1. キャンバスで、Excel ステージをダブルクリックします。
  2. 「入力」タブで、「入力名」フィールドから入力リンクを選択します。
  3. ステージタブの書き込みモードリストから、既存ファイルの変更を選択する
  4. データの書き込み先のターゲット・ファイルの詳細を指定します。
    1. 出力ファイルセクションで、データ資産の作成を選択して資産を作成し、資産タブに自動的に追加します。
    2. 「ファイル名」フィールドに、データの書き込み先のファイルの名前を指定します。
    3. Microsoft Excelシートで32列以上を更新する場合は、読み込む列数フィールドで列数を指定します。
    4. プロパティセクション最初の行はヘッダーを選択した場合、この行から書き込みを開始フィールドに値を入力します。

      値は2以上または1以上でなければならない。

    5. 「マップ」セクションで「編集」をクリックし、「列のインポート」をクリックします。
  5. インポートページでインポートするMicrosoft Excelの詳細を指定します。
    1. シートリストから、更新するMicrosoft Excelシートを選択します。
    2. 列のリストから、更新するMicrosoft Excelの列を選択します。
    3. インポート をクリックします。
  6. インポートされたMicrosoft Excelの列を、入力リンクで定義されているDataStage列にマッピングします。 データを書き込む列を選択する。
  7. 「プロパティー」セクションのステップと、すべての入力リンクのマッピングを繰り返します。
  8. 保存 をクリックします。