回答結果のCSVファイルをスプレッドシートに連携する

  • 想定作業時間:30分
  • 難易度:★★★★☆
  • 公開日:2022年11月28日

本コンテンツでは、Reco pageでダウンロードしたCSVファイルをGoogleスプレッドシートに連携し、一覧表を作成する方法を紹介します。Google Apps Scriptを使用して連携するため、簡単なスクリプトを書く必要がありますが、本コンテンツの手順に沿って設定すれば、簡単に回答データを簡単にビジュアル化できるので、本コンテンツを参考にチャレンジしてみてくだい。

事前に準備するもの

  • Googleアカウント
  • Googleドライブ
  • Googleスプレッドシート
  • ダウンロードしたCSVファイル

Googleドライブにフォルダとスプレッドシートを作成

Googleアカウントにログインし、Googleドライブを開きます。

任意の場所にフォルダを作成していきます。フォルダ名やファイル名は自由に変更しても構いませんが

フォルダ構成は本コンテンツと同じ構成にすることをお勧めします。

作成したフォルダ内に以下のフォルダとスプレッドシートを作成しましょう。

  • CSV(フォルダ)・・・ダウンロードしたCSVファイルを格納するフォルダ
  • CSV_old(フォルダ)・・・処理されたあとに自動的にCSVファイルが移動されるフォルダ
  • Reco page データ連携(Google スプレッドシート)

ここまで作成できたら事前準備は完了です。

Google スプレッドシートに自動連携用のスクリプトを記載する

続いて、作成したGoogleスプレッドシートを開き、以下の手順でGoogle Apps Scriptを開きます。

拡張機能 > Apps Script

Google Apps Script(GAS)

Google Apps Scriptは、GmailやGoogleスプレッドシートなどのGoogleの提供するサービスと連携して利用するためのプログラミング言語です。Google Apps Scriptを利用することで、様々な業務の自動化、連携を行うことができます。

プロジェクト名を設定します。

今回は「CSV連携」に設定しました。

続いてスクリプトを記載していきます。

以下のスクリプトをコピーし「コード.gs」ファイルに貼り付けてください。

// 設定項目(必要に応じて、修正してください)
const SHEET_NUM = 0 // 挿入したいシートの番号(左から0,1,2...)
// 処理前のCSVが格納されているフォルダID
const FOLDER_ID = "XXXXXXXXXXXXXXXXXXX"
// 処理済みのCSVを格納するフォルダID
const OLD_FOLDER_ID = "XXXXXXXXXXXXXXXXXXX"

function CSVtoSS() {
  // スプレッドシートを取得
  const ss =  SpreadsheetApp.getActiveSpreadsheet();
  // 一番左のシートを取得
  const sheet = ss.getSheets()[SHEET_NUM]
  // CSVを格納したフォルダを取得
  const folder = DriveApp.getFolderById(FOLDER_ID)
  // フォルダに入っているファイルをすべて取得
  const files = folder.getFiles();

  // フォルダの中のファイルを一つずつ処理
  while (files.hasNext()) {
    // CSVファイルを取得
    const file = files.next();
    // CSVをパースする
    const csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
    // 1行ごと処理する
    csvData.forEach((data, i) => {
      // 一行目を無視する
      if (i === 0) {
        return;
      }
      // 追加する行のデータを作成
      const row = [];
      // CSVのデータを追加
      row.push(...data);

      // 作成した行データを最終行に追加する
      sheet.appendRow(row);
    });

    // 処理済みフォルダに移行
    file.moveTo(DriveApp.getFolderById(OLD_FOLDER_ID))
  }
}

貼り付けが完了したら、4行目と6行目のフォルダID”XXXXXXXXXXXXXXXXXXX”となっている箇所を作成したフォルダのフォルダIDに変更していきます。

Googleドライブに戻り「CSV」フォルダを開きます。

URLの最後の箇所がフォルダIDになりますので、こちらをコピーしましょう。

再度Google Apps Scriptの「コード.gs」を開き、4行目の”XXXXXXXXXXXXXXXXXXX”部分に貼り付けます。

同様に、「CSV_old」フォルダのフォルダIDをコピーし、6行目に貼り付けます。

これで、フォルダIDの指定が完了しました。

control+S(Windows)、command+S(mac)でプロジェクトを保存してください。

画面左上のアイコンからも保存ができます。

スプレッドシートの1行目に項目を設定する

CSVのデータ項目に合わせてスプレッドシートの1行目に項目名を設定しましょう。

先ほど記載したスクリプトでは、1行目を無視して2行目からデータが転記されるようになっています。

トリガー設定で定期的にスプレッドシートに転記されるようにする

最後にトリガー設定で定期的にスプレッドシートに転記されるように設定します。

左メニューの「トリガー設定」を開きます。

「トリガーを追加」ボタンをクリックし、設定を開きます。

以下に設定し保存します。

  • イベントのソースを選択「時間主導型」
  • 時間ベースのトリガーのタイプを選択「分ベースのタイマー」
  • 時間の間隔を選択(分)「1分おき」

1分おきにCSVファイルを転記するフローを作成することができました。

以上で設定は完了です。Reco pageでダウンロードしてきたCSVファイルを「CSV」フォルダに格納すれば自動的にスプレッドシートに転記されるようになりました。

データを加工する

転記されたデータは、合計点を出したり、点数に応じてランクづけするなど自由に加工することができます。

「データ連携」シートはCSVファイルを転記するためのシートなので、直接加工はせず、別シートを作成して参照するようにしてください。