[CSV データ更新]で様々な入出力形式に対応する

前回の記事「CSV のデータ加工を自動化する」では、カンマで区切られた標準的な CSV データを、自動工程[CSV データ更新]で加工する方法をご紹介しました。

しかし、この[CSV データ更新]の真価は、単なる Comma-Separated Values 形式の処理にとどまりません。オプション設定を使い分けることで、TSV(タブ区切り)やヘッダのない生データ、さらには単一行のテキスト値など、「CSV」という枠を超えた多様な形式を取り込むことができます。

さらに出力時にも、クォートの有無やヘッダ設定の切り替え、個別のデータ項目への分割保存といった細かな制御が可能です。これにより、後続工程の要件に応じた柔軟なデータ変換を実現できます。

[CSV データ更新]関連記事:

1. 利用できるオプション

1-1. 入力時のオプション

[入力データ]の設定には、CSV 形式以外のデータを入力の対象にできるように、オプションが用意されています。

  • データ形式:
    • 「CSV」(カンマ区切り)と「TSV」(タブ区切り)のいずれかを選択可能です。
  • ヘッダの有無:
    • 「ヘッダなし(1行目からデータ)」を選択すると、1行目からデータ行として扱われます。この場合、クエリでのカラム名は "col1", "col2"… と指定します。
  • ID カラムの追加:
    • 入力データに行番号を示す ID カラム(1, 2, 3…)を自動付与するオプションがあります。

1-2. 出力時のオプション

[保存設定]では、出力形式を細かく制御できるオプションが用意されています。

  • 保存形式:
    • CSV / TSV を選択できます。入力と異なる形式での出力(変換)も可能です。
  • ヘッダの出力:
    • 出力データにヘッダ行を含めるか、データのみにするかを選択できます。
  • クォート囲みの有無:
    • 出力データの各値をクォートで囲むかどうかを指定できます。
  • 分割保存:
    • 「各カラムの値を改行区切りで保存」や「各セルの値を別々のデータ項目に保存」といったオプションも選択可能です。
      • 使い方については別記事で紹介します。
        • [CSV データ更新]でデータ集計を自動化する(近日公開予定)
        • [CSV データ更新]で選択肢マスタを構成する(近日公開予定)

2. データ形式と対応するオプション設定

2-1. ヘッダ行がないリストデータを取り込む

氏名一覧などの、単なる箇条書きリスト(改行区切りの文字列)のデータに対応します。

設定例

入力オプション

  • [C1a: データ形式 > ヘッダの有無]で「ヘッダなし(1行目からデータ)」を指定します。

出力オプション

  • [C4: クエリ結果の保存方法]で「テーブル全体を CSV / TSV 形式で1つのデータ項目に保存する」を指定します。
  • [C4b: 保存する際のデータ形式]の[ヘッダの有無]で「ヘッダなし(1行目からデータ)」を指定します。

クエリ例

フィールド名「q_list」のデータ項目に保存されている氏名リストを、アルファベット順に並べ替える。ヘッダがない列を “col1” で指定する。

SELECT *
FROM "q_list"
ORDER BY "col1"
文字型(複数行)データを並べ替え

利用シーン

  • テキストリストを加工したうえで、別のデータ項目に保存する。
  • 文字型(複数行)の内容をクエリで整形・再出力する。

2-2. 文字型(単一行)のデータを取り込む

ヘッダ行を持たない[文字型(単一行)]データ項目に保存されているデータに対応します。1行の CSV データとして扱われます。

設定例

入力オプション

  • [C2: データが保存されているデータ項目2]で文字型(単一行)のデータ項目を指定します。
  • [C2a: データ形式]の[ヘッダの有無]で「ヘッダなし(1行目からデータ)」を指定します。

クエリ例

[C1b: クエリからアクセスする際のテーブル名]が「売上表」のデータから、「商品ID」列を検索し、抽出する。検索対象となる値は、サブクエリで[C2: データが保存されているデータ項目2]で指定したフィールド名「q_productId」のデータ項目の値が参照される。

SELECT *
FROM "売上表"
WHERE "商品ID" LIKE (SELECT * FROM "q_productId")
文字型(単一行)で検索

利用シーン

  • プロセスごとに単一行データを変えて、抽出する対象を変更する。

2-3. TSV 形式のデータを取り込む

入力データの形式で TSV を指定することで、TSV 形式(タブ区切り)のデータに対応します。

設定例

入力オプション

  • [C1a: データ形式]の[CSV / TSV]で「TSV」を指定します。

出力オプション

  • [C4b: 保存する際のデータ形式]の[CSV / TSV]で「CSV」を指定します。

クエリ例

[C1b: クエリからアクセスする際のテーブル名]が「商品」のデータを全て取り込んで出力する。(入出力オプションにより CSV に変換される。)

SELECT *
FROM "商品" 
TSV から CSV

利用シーン

  • 外部連携で CSV 形式が要求される場合に、TSV 形式のデータを CSV 形式に変換する。

2-4. クォートの有無を指定して出力させる

出力時のフォーマットで、クォート有無を指定できます。なお、入力時のクォートの有無は自動で処理されるのでどちらでもかまいません。

設定例

出力オプション

  • [C4b: 保存する際のデータ形式]の[CSV / TSV]で「CSV」を指定します。
  • [C4c: カラム名とデータをダブルクォートで囲む]で「常に」を指定します。

クエリ例

[C1b: クエリからアクセスする際のテーブル名]が「商品」のデータを全て取り込んで出力する。(入出力オプションによりダブルクォート囲みに変換される。)

SELECT *
FROM "商品"
TSV から CSV(全項目クォート付き)

利用シーン

  • 連携先のシステムが「全ての値をクォートで囲むこと」を要求している場合や、逆に「クォート不要」な場合に形式を合わせる。
  • クォート付き/なしデータの相互変換。

3. まとめ

[CSV データ更新]では、入力時のオプション設定により、CSV 形式以外のデータも扱うことができます。たとえば文字型(単一行)に保存されたカンマ区切りがないデータは、「1行1列のみ」の CSV データとして扱うことができます。

ヘッダの有無や区切り文字(カンマ/タブ)、クォート処理などのオプションを組み合わせることで、単純なテーブルデータだけでなく、様々なテキストデータの加工やフォーマット変換ハブとして活用できます。[CSV データ更新]という名前ですが、CSV データの加工にとどまらず、いろいろな用途でお役立てください。

上部へスクロール

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む