リライブシャツすごすぎワロタwwwwww【リライブシャツを買ってみたらガチだった。】 リライブシャツ 着るだけで「身体機能をサポートする」怪しいシャツがガチだった。 YouTubeやSNSでバズってた「リライブ...
目次
この記事の説明
GASを使って、スプレッドシートをPDFに変換する処理を記述する際の手順です。
この記事は自分の備忘録をリライト中です。
PDF化してDriveに保存する
スプレッドシートでファイルをエクスポートするには、下記のURLにアクセスすることで出来ます。
URLに、クエリストリングでパラメータを渡すことで、変換フォーマットや変換するシートを指定します。
エクスポートURL
- クエリストリング
?exportFormat=pdf
- シートを指定するには?
- クエリストリングgidにシートIDを渡します。
?gid=[シートID]
- シートIDとは?
- スプレッドシートの各シートには固有のidが振られています。下図のようにURLから取得できます。
2. 認証
ファイルへのアクセス権を証明するために、ScriptApp.getOAuthToken();
でトークンを取得して、そのトークンを使って認証します。今回はBearer認証を使います。
var url = "https://docs.google.com/spreadsheets/d/" + QuoteStId + "/export?exportFormat=pdf&gid=SID".replace("SID",stId); var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url,{ headers:{ "Authorization" : "Bearer "+ token } });
3. PDFをGoogleDriveに保存する。
urlfetchの戻り値の中のblobを使って、DriveAppのcreateFileメソッドを使ってドライブに保存します。
var filename = "ファイル名" var blob = response.getBlob().setName(filename); var folder = DriveApp.getFolderById("GoogleDriveに作成した保存フォルダのID"); var file = folder.createFile(blob);
4. GASコードまとめ
//PDF化 var url = "https://docs.google.com/spreadsheets/d/" + QuoteStId + "/export?exportFormat=pdf&gid=SID".replace("SID",stId); var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url,{ headers:{ "Authorization" : "Bearer "+ token } //PDFファイルをGoogleドライブに保存する処理 var filename = "ファイルネーム" var blob = response.getBlob().setName(filename); var folder = DriveApp.getFolderById("GoogleDriveに作成した保存フォルダのID"); var file = folder.createFile(blob);
注意
- PDF化したときに空白ページが紛れてしまう
- スプレッドシートのPDF化は何故か未使用セルの部分までPDF化されてしまい、PDFの最終ページに空白ページが紛れてしまうことがある。この場合は元となるスプレッドシートの未使用領域のセルを削除しておくと良いです。