ご訪問ありがとうございます。
Googleシートマスターのひろしです。
4回に渡って、Googleドキュメントの中身を
スプレッドシートのデータに差し替えて
PDFファイルを作成します。
今回は3回めなので、これまでの2つを見たほうが
理解が深まります。
【GAS基礎講座 10】 Googleドキュメント 文字列の置換 (テンプレに差し込んでPDFファイルを出力)
【GAS基礎講座11】 GoogleドキュメントをPDFファイルに変換する
前回から4回に渡って、Googleドキュメントの中身を
スプレッドシートのデータに差し替えて
PDFファイルを作成します。
今回は、核となるPDFファイルの出力です。
そして、今回はPDFファイル名をスプレッドシートから
取得します。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- スプレッドシートから名前を取得しPDFファイルを作成することができます。
そしてサクッとマスターして
と答えてあげてください。
動画はこちら
スクリプト
function createBulkPDFs(){
const docFile = DriveApp.getFileById("1z3KQOfDLj5PqFjVR0Ir4X5SJjzTQNmpcxnihi6paeGs");
const tempFolder = DriveApp.getFolderById("1sdCNy2CAlmdwpu9LyaQb1sKHKV2CG6kz");
const pdfFolder = DriveApp.getFolderById("1Jn33Nm9gACL0mfhzz9o8-dRbvco77MUo");
const currentSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let lr = currentSheet.getLastRow();
for( var i=2 ;i <= lr ; i++ )
{
var name = currentSheet.getRange(i,1).getValue();
var amount = currentSheet.getRange(i,3).getValue();
createPDF(name,amount,name,docFile,tempFolder,pdfFolder);
}
}
function createPDF(Name,amount,pdfName,docFile,tempFolder,pdfFolder) {
const tempFile = docFile.makeCopy(tempFolder);
const tempDocFile = DocumentApp.openById(tempFile.getId());
const body = tempDocFile.getBody();
body.replaceText("{name}", Name);
body.replaceText("{balance}", amount);
tempDocFile.saveAndClose();
const pdfContentBlob = tempFile.getAs(MimeType.PDF);
pdfFolder.createFile(pdfContentBlob).setName(pdfName);
tempFolder.removeFile(tempFile);
}
以上です。
最後までご覧いただきありがとうございます。
次は、forループをforEachでやってみましょう。
【GAS基礎講座13】配列操作時にfor文よりも使えるforEach
4回に渡って、Googleドキュメントの中身を
スプレッドシートのデータに差し替えて
PDFファイルを作成します。
の最終回です。
コメント