質問
更新情報が格納されたCSVファイルから特定の項目のみを抜き出し、結果を別のCSVファイルに書き出す処理を作成したいです。
CSVファイルの項目数や項目の順序が変動する場合でも、マッピングがずれないような設定は可能でしょうか。
例)
【抜き出したい項目】
B,D,E
【CSVファイルの構成で想定されるパターン】
パターン1:A,B,C,D,E
パターン2:H,A,B,C,D,E,I
パターン3:A,B,C,H,I,D,J,E
パターン4:H,A,B,C,I,D,J,E,K
【各パターンの意図】
パターン1:CSVファイル読み取り処理で指定した項目が読み取られた場合
パターン2:CSVファイル読み取り処理で指定した項目の前後に、さらに別の項目が追加されたファイルが読み取られた場合
パターン3:CSVファイル読み取り処理で指定した項目の間に、複数の項目が追加されたファイルが読み取られた場合
パターン4:パターン2と3の複合型のファイルが読み取られた場合
※可変ファイルの最大項目数は不明です。
回答
CSVファイル読み取り処理の列一覧やマッピングのスキーマは、動的に指定することはできない仕様のため、
事前に想定される最大数分の設定を行っていただくことが前提となりますが、行列の入れ替え機能と
データチェックコンポーネントを使用することにより、ご要望の動作の実現が可能です。
以下にサポートにて検証済みのスクリプト実装例をご紹介いたします。
あくまで一例となりますので、お客様のご要件に合わせて適宜ご調整ください。
■スクリプトの実装イメージ
■設定手順
1.[CSVファイル読み取り処理]を配置し、元データのCSVファイルを読み取り、列一覧を指定する。
※CSV読み取り処理における列一覧については、動的な指定はできません。
CSVファイルごとに都度、[列一覧の更新]から読み込んでいただくか、
想定される最大項目数分の列数を事前に設定してください。
例では、10列を設定しています。
2.[行列の入れ替え処理]を配置し、[CSVファイル読み取り処理]で取得したデータの行列を入れ替える。
3.[データチェック処理]を配置し、以下のように設定する。
※例では、データチェック条件一覧で、項目の値がBかDかEの条件を正規表現で指定しています。
条件を変更したい場合は、適宜正規表現の指定を行ってください。
4.[行列の入れ替え処理]の2つ目を配置し、[データチェック処理]で出力したデータの行列を再度入れ替える。
5.[マッピング]を配置し、行列の再入れ替えを行ったデータにテーブルモデル型のスキーマを設定する。
6.入力スキーマのインデックスに1~3のカラムを指定し、CSVファイルに出力する。
コメント
0件のコメント
記事コメントは受け付けていません。