タダスケのIT備忘録

IT系の個人的備忘録。法律事務所勤務。

GASでスプレッドシートのデータを取得しgoogleドキュメントのテキストを置換する

ショートカット

ショートカット 内容
ctrl+r スクリプト実行のショートカット
ctrl+space コンテンツアシスト(入力補助)
alt+/ 単語補完
ctrl+enter ログの表示
ctrl+/ コメント
ctrl+左右 単語単位で移動
alt+左右 行頭行末へ移動
ctrl+d 行削除

スプレッドシートのデータを取得する

基礎的なこと(練習)

スプレッドシートのidは,urlの一部

https://docs.google.com/spreadsheets/d/{id}/edit#gid=0

A1のテキストをログに表示する

    var SApp = SpreadsheetApp.openById("{id}");
    Logger.log(SApp.getSheets()[0].getRange(1, 1).getValue());

2次元配列を1次元にする

    var array = [['bob','tom'],'sam'];
    Logger.log(Array.prototype.concat.apply([],array));

本番

以下のスプレッドシートから,データを取り出す

1列目 2列目
項目 文字列
X住所 東京都
Y住所 大阪府
C氏名 クライアント
OP氏名 相手方
var SApp = SpreadsheetApp.openById("{id}");//スプレッドシートアップを取得
var sheet = SApp.getSheets()[0];//1番左のシートを取得
var values = sheet.getDataRange().getValues();//全範囲のデータを取得
var array = sheet.getRange(1,1,sheet.getLastRow()).getValues();//1列目のデータを取得
array = Array.prototype.concat.apply([],array);//2次元配列を1次元化する

// スプレッドシートのデータを取得する
var XAddress = values[array.indexOf('X住所')][1];
var YAddress = values[array.indexOf('Y住所')][1];
var XName = values[array.indexOf('X氏名')][1];
var Yame = values[array.indexOf('Y氏名')][1];
  
// 以下,googleドキュメント
var document = DocumentApp.getActiveDocument();//バインドされたgoogleドキュメントを取得
var body = document.getBody();//body部分を取得
var str = body.getText();//body部分のテキストを取得

var str = str.replace(/@X氏名/g,XName);//正規表現で置換
body.setText(str);//bodyにテキストをセットする

参考書籍