前提・実現したいこと
別のスプレッドシートにある表を、PDF化して指定フォルダに保存を行いたいのですが
「エラーはでない(実装完了する)が、指定フォルダにPDFが保存されていない」という現象がおきました。
理由が分からず行き詰ったため、ご教示いただけると幸いです。
発生している問題・エラーメッセージ
指定フォルダにPDFが保存されていない
該当のソースコード
function createPDF() { const ss = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得 const lastRow = ss.getLastRow for(let i = 2; i <= lastRow; i++){ const ssid = getRange(i, 8); //スプレッドシートのIDを取得 const sheet = ss.getActiveSheet('sheet1'); //アクティブなシートを取得 const sheetid = sheet.getSheetId(); //シートIDを取得 const pdfRange = 'A1%3AAE316'; //PDF化範囲 //PDFをエクスポートするURL const url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace('SSID', ssid); //PDF化オプションを設定 const opts = { exportFormat: 'pdf', format: 'pdf', size: 'A4', //出力するサイズ portrait: 'false', //PDFファイルの向き。true:縦向き、false:横向き fitw: 'true', //ページのフィット。true:フィット、false:原寸大 sheetnames: 'false', //シート名。true:有り、false:無し printtitle: 'false', //ドキュメントのタイトル。true:有り、false:無し pagenumbers: 'false', //ページ番号。true:有り、false:無し gridlines: 'false', //グリッドライン。true:有り、false:無し fzr: 'false', //各ページの行見出し。true:含める、false:含めない range: pdfRange, gid: sheetid }; //オプションを「&」で繋げる let url_ext = []; for( optName in opts ){ url_ext.push( optName + '=' + opts[optName] ); } const options = url_ext.join('&'); //API使用のOAuth認証 const token = ScriptApp.getOAuthToken(); //セルGiの値を取得してファイル名を設定 const fileName = sheet.getRange(i , 7).getValue() + '.pdf'; //PDF作成 const pdf = UrlFetchApp.fetch(url + options, { headers: { 'Authorization': 'Bearer ' + token }, muteHttpExceptions: true }).getBlob().setName(fileName); //フォルダ指定先にPDFを保存 const Folderid = "1Zk2l1A2SJ9lwkSVccPwTZawwoi1kDRgI" DriveApp.getFolderById(Folderid).createFile(pdf); } }
試したこと
思い浮かばず、試せておりません。
補足情報(FW/ツールのバージョンなど)
ssidは別スプレッドシートIDがある場所
sheetはssidで取得したID内のシート名(全スプシ統一)
sheetidはsheetのシートIDを取得
pdfRangeはsheet内のPDF化したい範囲です。
const ssid = getRange(i, 8); //スプレッドシートのIDを取得
const sheet = ss.getActiveSheet('sheet1'); //アクティブなシートを取得
const sheetid = sheet.getSheetId(); //シートIDを取得
const pdfRange = 'A1%3AAE316'; //PDF化範囲
あなたの回答
tips
プレビュー