GAS(Google Apps Script)


スクリプトのロック処理/排他制御


日付と時刻


スプレッドシートのクリア


テキストファイルで改行コードを指定して保存

function main(){
  sheet = SpreadsheetApp.getActive();
  let file_name = getFileName(sheet, '.sh')
  createTextFile(out_sheet, file_name)  
}

function createTextFile(sheet, file_name, newline_code = '\n') {
  const text = getText(sheet);
  var blob = Utilities.newBlob(text, 'text/plain', file_name);
  var folder = getParentFolder();
  folder.createFile(blob);

}

function getText(sheet, newline_code = '\n') {
  const values = sheet.getDataRange().getValues();
  var data = [];
  for(let i = 0; i < values.length; i++) {
    let line = values[i].join(' ').trim()
    data.push(line);
  }

  return data.join(newline_code);
}

function getFileName(sheet, ext = '.txt', timeformat= 'yyyyMMdd_HHmm', timezone = 'Asia/Tokyo') {
  var sheetName = sheet.getName()
  var datetime = Utilities.formatDate(new Date(), timezone, timeformat);

  return sheetName + '_' + datetime + ext;
}

function getParentFolder() {
  let thisFileId = SpreadsheetApp.getActive().getId();
  let thisFile = DriveApp.getFileById(thisFileId);
  let parentFolder = thisFile.getParents().next();
  return parentFolder;
}

メール送信

記事:


AWSとの連携

記事:


ライブラリ: 一つのGASを複数のスプレッドシート等で使う

共通化したいGASファイル:

GASを利用したいスプレッドシート側:

GASを更新する場合:


ベストプラクティス


コーディング規約/ガイドライン


GitHub連携


clasp: cliでソースコードを扱う

デフォルトではweb上エディタ上を使うが、gitや任意のエディタを使えるようにする。

  1. GoogleアカウントのGoogle Apps Script APIをオンにする
  2. node.js製ツールなので、Memo/Linux/anyenv#ide22883 を参考に入れる
  3. claspのインストール
    npm install -g @google/clasp
    
    # shellの再起動。claspが見つからない場合があった
    exec $SHELL -l
  4. 表示されたURLを使いたいGoogleアカウントにサインインした状態で開く
    clasp login

サンプル: GET/POSTを表示する

function doGet(e) {
  return HtmlService.createHtmlOutput(JSON.stringify(e));
}

function doPost(e) {
  return ContentService.createTextOutput(e.postData.getDataAsString());
}

デプロイ

devとprod用の異なるURLがある。
1度発行されたURLはコードを変えても変わらない

dev用:

  1. コードを変更する
  2. 公開 > ウェブアプリケーションとして導入 > 最新のコードのリンクをクリック
  3. https://script.google.com/macros/s/{dev用token}/dev

prod用:

  1. コードを変更する
  2. ファイル > 版の管理 > 新しいバージョンを保存
  3. 公開 > ウェブアプリケーションとして導入 > プロジェクトのバージョンで新しいバージョンを指定
  4. 現在のウェブ アプリケーションのURL
  5. https://script.google.com/macros/s/{prod用token}/exec

Logging


GoogleフォームとSlack連携


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-07-17 (水) 14:04:24