見出し画像

【GAS】Google Apps Script 活用事例 Google DocumentにSpreadsheetの表をGASで貼り付ける方法

Photo by Digital Content Writers India on Unsplash

GoogleドキュメントのGASを使った効率化事例って、なかなか検索しても出てこないんですよねー。今回は、スプレッドシートの内容をドキュメントに貼り付ける方法を紹介していきたいと思います。

試したみたものの、労力に見合う対価がなぁ......。個人的には、そこまで使う頻度が高くないので、コピペでいいかなと思っています。← おいッ!!むしろ、Google Slidesとかの方が使用頻度が高いかもしれませんね。

実行すると、こんな感じで、スプレッドシートが貼り付けられます。

スクリーンショット 2020-06-05 10.49.43

Google ドキュメントにスプシーを貼り付けるスクリプト

function onOpen () {
 const ui = DocumentApp.getUi()
 .createMenu('追加メニュー')
 .addItem('スプレッドシートの表をドキュメントに挿入する', 'getValues')
 .addToUi();
}


function getValues() {
 const url         = '************************';
 const spreadsheet = SpreadsheetApp.openByUrl(url);
 const fileName    = spreadsheet.getName();
 const sheet       = spreadsheet.getSheetByName('シート名');
 const values      = sheet.getDataRange().getValues();
 
 console.log(fileName);
 console.log(values);
 
 
 appendTable(values, fileName, url);
 
}

function appendTable(values, fileName, url) {
 const document = DocumentApp.getActiveDocument();
 const body     = document.getBody();
 const table    = body.appendTable(values);
 
 const paragraphs = body.getParagraphs();
 console.log(paragraphs);
 
 
 body
 .appendParagraph(fileName)
 .setLinkUrl(url)
 .setForegroundColor('#1155cc')
 .setFontSize(14);
 
}

普段は、Spreadsheetの自動化が多いので、スプレッドシートのメニューからツール、スクリプトエディタと進みますが、今回は、Google ドキュメントのスクリプトエディタにコードを書いていきます。

スクリーンショット_2020-06-05_10_39_17

月次の集計などで、スプレッドシートのURLは都度変わるけど、シート名は固定で変わらないみたいな場合には、こちらをどうぞ

function onOpen () {
 const ui = DocumentApp.getUi()
 .createMenu('追加メニュー')
 .addItem('スプレッドシートの表をドキュメントに挿入する', 'getValues')
 .addToUi();
}

function getValues() {
 const url         = getUrl();
 const spreadsheet = SpreadsheetApp.openByUrl(url);
 const fileName    = spreadsheet.getName();
 const sheet       = spreadsheet.getSheetByName('prisonBreak');
 
 const values      = sheet.getDataRange().getValues();
 
 console.log(fileName);
 console.log(values);
 
 
 appendTable(values, fileName, url);
 
}

function appendTable(values, fileName, url) {
 const document = DocumentApp.getActiveDocument();
 const body     = document.getBody();
 const table    = body.appendTable(values);
 
 const paragraphs = body.getParagraphs();
 console.log(paragraphs);
 
 
 body
 .appendParagraph(fileName)
 .setLinkUrl(url)
 .setForegroundColor('#1155cc')
 .setFontSize(14);
 
}


function getUrl() {
 
 const ui = DocumentApp.getUi();
 const response = ui.prompt(
   'SpreadsheetのURLを入力してください。',
   '',
   ui.ButtonSet.OK
 );
 
 const url = response.getResponseText()
 console.log(url);
 
 switch (response.getSelectedButton()) {
   case ui.Button.OK:
     console.log('%s と入力され、OKが押されました。',url);
     
     break;
     
   case ui.Button.CLOSE:
     console.log('閉じるボタンが押されました。');
   
   
 }//switch
 return url
}

過去記事はこちらから


この記事が参加している募集

#スキしてみて

523,364件

この記事が気に入ったらサポートをしてみませんか?