質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

0回答

808閲覧

指定フォルダにPDFが保存されていない

taimai

総合スコア0

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2021/12/20 03:34

前提・実現したいこと

別のスプレッドシートにある表を、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化範囲

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/12/20 04:04

まずはどこのフォルダにそのファイルが作成されたのか、検索して探してみよう
taimai

2021/12/20 04:13

ありがとうございます。 検索しましたが、ドライブ内にありませんでした。
itagagaki

2021/12/20 08:15

createFileの返値からgetIdなrgetUrlなりしてみて確かめてみてはどうですか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問