会員登録(無料)
ログイン
スキルアップは今すぐこちら!▶

【GAS】GoogleスプレッドシートからPDFを作成して指定フォルダに保存するスクリプト

GAS(GoogleAppsScript)
この記事は約5分で読めます。

タイトルの通りですが「GoogleスプレッドシートからPDFを作成して指定フォルダに保存するスクリプト」を作成してみます。

PDF作成用のスクリプト全文

まずは、PDFを作成するためのスクリプトを作成します。

function makePDFfile(){
  const date = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyyMMddHHmmss');
  const ssId = "1VV-jeaTM1TiuAhCFcu8m8Jk4p5qxP6vbnZenvVNjfCU";
  const folderId = "1nuMMcNOaCloonqBmVNxCplftir1QxdiY";
  const folder = DriveApp.getFolderById(folderId);
  const ssheet =SpreadsheetApp.openById(ssId);
  const key = ssheet.getId();
  const sheet = ssheet.getSheets()[0];
  const sheetId = sheet.getSheetId();
  const BaseURL = "https://docs.google.com/spreadsheets/d/" + key + "/export?gid=" + sheetId+ "&format=pdf&portrait=false&size=A4&gridlines=false&fitw=true";;
  const fileName = "ファイル"+date;
  // API使用のためのOAuth認証
  const token = ScriptApp.getOAuthToken();
  // headers作成
  const header = {headers: {'Authorization': 'Bearer ' +  token}};
  //PDF生成するURLをfetchする
  const pdf = UrlFetchApp.fetch(url,header).getBlob().setName(fileName + ".pdf");
  
  //指定フォルダにPDF作成
  folder.createFile(pdf);
}

実行すると、例のごとく権限設定画面になりますので、承認してスクリプトの権限を与えていきます。このあたりは過去に何度か書いていますので、過去の記事をご参考ください。

これで、指定したフォルダにスプレッドシートのPDFファイルが作成されます!!

ということで、中のスクリプトをひとつずつ見ていきます。

変数の作成

  const date = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyyMMddHHmmss');
  const ssId = "1VV-jeaTM1TiuAhCFcu8m8Jk4p5qxP6vbnZenvVNjfCU";
  const folderId = "1nuMMcNOaCloonqBmVNxCplftir1QxdiY";
  const folder = DriveApp.getFolderById(folderId);
  const ssheet =SpreadsheetApp.openById(ssId);
  const key = ssheet.getId();
  const sheet = ssheet.getSheets()[0];
  const sheetId = sheet.getSheetId();

まずは、スクリプトに必要な変数を準備していきます。

  • date:今日の日付をyyyyMMddHHmmss形式で格納(ファイル名に設定するため)
  • ssId:スプレッドシートのID
  • folderId:フォルダのID
  • folder:フォルダを取得
  • ssheet:スプレッドシートを取得
  • key:シートのキー値
  • sheet:シート
  • sheetId:シートのID

これらの変数を準備します。

フォルダIDとは?

フォルダIDとは、マイドライブや共有ドライブで開いているフォルダの「folders/」以降の文字列です。

スプレッドシートIDとは?

フォルダIDとは、開いているスプレッドシートの「d/」以降の文字列です。

APIでPDF生成

APIを使ってPDFを生成します。

const url = "https://docs.google.com/spreadsheets/d/" + key + "/export?gid=" + sheetId+ "&format=pdf&portrait=false&size=A4&gridlines=false&fitw=true";;
  const fileName = "ファイル"+date;
  // API使用のためのOAuth認証
  const token = ScriptApp.getOAuthToken();
  // headers作成
  const header = {headers: {'Authorization': 'Bearer ' +  token}};
  //PDF生成するURLをfetchする
  const pdf = UrlFetchApp.fetch(url,header).getBlob().setName(fileName + ".pdf");
  
  //指定フォルダにPDF作成
  folder.createFile(pdf);

createFileで指定フォルダにファイルを作成して、完了です。

まとめ

という感じで、スクリプトを実行するだけで指定したフォルダにPDFファイルが自動作成されました!

工夫次第で、他にも色々と応用できそうです。また別記事でも追加していきます。

ご参考ください😃

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