LANG SELRCT

コードを書く場所についてはこちら

2018年1月8日月曜日

スプレッドシートからCSVファイルを作ってGoogleドライブに保存する


こういうスプレッドシートを


CSVファイルにしてGoogleドライブに保存する
(保存したファイルを開いた画面↓)


コード.gsの

SS_URL:保存したいシートがあるスプレッドシートのURL
FOLDER_ID:保存先のフォルダのID
FILE_NAME:保存したいファイル名

は任意で設定して下さい



コード.gs
function save_to_drive_csv() {
  var data = get_values();
  create_file(data);
}

function get_values() {
  var ss_url = "SS_URL";
  var ss = SpreadsheetApp.openByUrl(ss_url);
  var sheet = ss.getSheets()[0];
  var last_row = sheet.getLastRow();
  var values = sheet.getRange("A1:B" + last_row).getValues();
  var data = "";
  for(var i = 0; i < values.length; i++){
   data += values[i] + "\r\n";
  }
  return data;
}

function create_file(data) {
  var content_type = "text/csv";
  var file_name = "FILE_NAME";
  var blob = Utilities.newBlob("", content_type, file_name)
  var file = blob.setDataFromString(data, "utf-8");
  var drive = DriveApp.getFolderById("FOLDER_ID");
  drive.createFile(file);
}
意訳
この機能がやること
get_values()を実行して
返ってきた値をcreate_fileに渡す


この機能がやること
スプレッドシートのURLを指定して
開いて
先頭のシートを取得して
データが入っている最終行を取得して
A1:Bの範囲のデータを取得して
行ごとのデータを入れる変数を用意して
dataという入れ物を用意して
行ごとのデータを改行を付けてつなげる

行毎に改行が入ったdataを返す


この機能がやること
content_typeを設定する
ファイル名を設定する
Blob objectを作成して
dataと文字コードを渡し
指定したフォルダに
ファイルを作成する




参考

Class Utilities