ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】GoogleドキュメントにGスプレッドシートのデータを差し込む
今回は、前回の続きです。
※Googleドキュメントの置換方法は、前回をご覧ください。
これを知ることであなたは、
- スプレッドシートから一気にデータを読み込む方法がわかります。
- 関数に複数の引数を渡す方法がわかります。
逆に、知らないと
せっかく前回ドキュメントの置換方法がマスターできたのに
一括で複数のドキュメントを置換できないため「イマイチ」状態の
まま過ごすことになります。
チョーもったいないです。
今回は、ちょっと長編なので大変だとは思いますが、
倍速で見たり、逆にところどころ止めたりして
動画のとおりにやってみてください。
そして
と答えてあげてください。
動画はこちら
スクリプト
//テンプレートをコピーしスプレッドシートの単語に置換する
function MakeDocFromTemplate() {
const SH_NAME = "購入一覧" //読み込みシート名
const BASE_URI = "" //元となるファイルのURI
const DEST_FOLDER = "" //コピー先フォルダのURI
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SH_NAME)
//元となるファイルを取得
const basefile = DriveApp.getFileById(BASE_URI)
//コピー先のフォルダ
const destfolder = DriveApp.getFolderById(DEST_FOLDER)
const values = sh.getDataRange().getValues()
console.log(values[0])
let setdata = [] //ステータスとURL用のバッファ
for (i = 1; i < values.length; i++) {
setDocdata(values[i], basefile, destfolder)
console.log(values[i][ID_URL])
setdata.push(["作成済み", values[i][ID_URL]]) //バッファに要素を追加する
}
//setdata() "作成済み",URL をシートに反映させる
console.log(setdata)
sh.getRange(2, 7, values.length - 1, 2).setValues(setdata)
}
// 0 1 2 3 4 5 6 7
//'', '名前', '郵便番号', '住所', '受注番号', '商品名', 'ステータス', 'URL'
const ID_NAME = 1 //名前
const ID_ZIPCODE = 2 //郵便番号
const ID_ADDRESS = 3 //住所
const ID_ORDERNO = 4 //受注番号
const ID_PRODUCTNAME = 5 //商品名
const ID_STATUS = 6 //ステータス
const ID_URL = 7 //URL
function setDocdata(setdata, bfile, dfolder) {
//新しいファイル名
console.log(setdata[1])
const newfile = bfile.makeCopy(setdata[1], dfolder)
const newid = newfile.getId()
const newurl = newfile.getUrl()
console.log(newurl)
const basedoc = DocumentApp.openById(newid)
console.log(basedoc.getName())
const basebody = basedoc.getBody()
//文字列の置換
//'', '名前', '郵便番号', '住所', '受注番号', '商品名', 'ステータス', 'URL'
basebody.replaceText('{名前}', setdata[ID_NAME])
basebody.replaceText('{郵便番号}', setdata[ID_ZIPCODE])
basebody.replaceText('{住所}', setdata[ID_ADDRESS])
basebody.replaceText('{受注番号}', setdata[ID_ORDERNO])
basebody.replaceText('{商品名}', setdata[ID_PRODUCTNAME])
setdata[ID_URL] = newurl //新しいURL
}
const BASE_URI = “” //元となるファイルのURI
const DEST_FOLDER = “” //コピー先フォルダのURI
の部分は、あなたの環境のURIでお試しください。
シートはこちら
※クリックするとシートが開きます。
ドキュメント
このたびはご予約いただき誠にありがとうございます。
テンプレショップです。
数ある店舗の中から当店をお選びいただき、
誠にありがとうございます。
以下の内容でご予約注文をお受けいたしましたので
ご確認をお願いいたします。
<注文情報>
------------------------------------------
[受注番号] {受注番号}
[お届け先] ご本人様宛
〒{郵便番号}
{住所}
------------------------------------------
[商品名]
{商品名}
------------------------------------------
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】Googleドキュメントにスプレッドシートで指定したデータを差し込む