[GAS]GoogleDrive内のCSVを配列処理

2017/09/01

Google Apps Script で CSVデータを配列で処理してみる。

サンプルとしてCSVファイルは ・Google Drive内 ・SJISフォーマット ・フォルダとファイル名を指定(フォルダ名はGoogle Drive内でユニーク) ・CSVの内容は、first_name, last_name, email 形式で1行目はタイトル


function main() {
      var rows = csvtoArray('フォルダ名', 'ファイル名');

      for (var i = 1; i < rows.length; i++) {
          var row = rows[i];

          var first_name = row[0];
          var last_name = row[1];
          var email = row[1];
          
          Logger.log(last_name);
          Logger.log(first_name);
          Logger.log(email);
     }
}

function csvtoArray(folder_name, file_name) {
    var folder = DriveApp.getFoldersByName(folder_name).next();
    var file = folder.getFilesByName(file_name).next();

    var csv = file.getBlob().getDataAsString("Shift_JIS");
    var rows = Utilities.parseCsv(csv);
  
    return rows;
}

getFoldersByName()、getFilesByName() のイテレートは横着して next() で最初のアイテムを取得 (GoogleDrive内で重複する場合、それなりの処理が必要)