【GAS】Googleドキュメントにスプレッドシートのデータを差し込む2

Google ドキュメント

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】GoogleドキュメントにGスプレッドシートのデータを差し込む
  • Googleドキュメントの定型文にスプレッドシートのデータを差し込むことができます。
  • Googleドライブにおけるファイルのコピー方法がわかります。
  • 今回は、前回の続きです。
    ※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でお試しください。

     

     

    日付を表示形式で使用する場合は、getValues()をgetDisplayValues()に置き換えればOKです。

     

     

    シートはこちら

    ※クリックするとシートが開きます。

     

    ドキュメント

    このたびはご予約いただき誠にありがとうございます。
    テンプレショップです。
    
    数ある店舗の中から当店をお選びいただき、
    誠にありがとうございます。
    
    以下の内容でご予約注文をお受けいたしましたので
    ご確認をお願いいたします。
    
    <注文情報>
    ------------------------------------------
    [受注番号] {受注番号}
    [お届け先] ご本人様宛
    〒{郵便番号}
    {住所}
    ------------------------------------------
    [商品名]
    {商品名}
    ------------------------------------------

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】Googleドキュメントにスプレッドシートで指定したデータを差し込む
  • スプレッドシート上でチェックしたデータを取得する方法がわかります。
  • GASの変更方法がわかります。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました