diff --git a/Code.ts b/Code.ts index bf7ed5b..8b59a64 100644 --- a/Code.ts +++ b/Code.ts @@ -2,6 +2,7 @@ function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('CMS Document Generation') .addItem('Generate document for current row', 'generateForCurrentRow') + .addItem('Generate document for all rows', 'generateForAllRows') .addToUi(); } @@ -71,15 +72,11 @@ function trashFiles(files: GoogleAppsScript.Drive.FileIterator) { } } -function generateForCurrentRow() { - const spreadsheet = SpreadsheetApp.getActive(); - const cell = spreadsheet.getCurrentCell(); - if (!cell) throw new Error('No Cell selected for operation on row'); - - const row = spreadsheetRowToObject( - spreadsheet.getActiveSheet(), - cell.getRow() - ); +function generateForRow( + spreadsheet: GoogleAppsScript.Spreadsheet.Spreadsheet, + row_num: number +) { + const row = spreadsheetRowToObject(spreadsheet.getActiveSheet(), row_num); const template_doc = DocumentApp.openById(row['Template ID']); @@ -143,3 +140,25 @@ function generateForCurrentRow() { // create PDF file out_folder.createFile(out_file.getAs('application/pdf')); } + +function generateForCurrentRow() { + const spreadsheet = SpreadsheetApp.getActive(); + + const cell = spreadsheet.getCurrentCell(); + if (!cell) throw new Error('No Cell selected for operation on row'); + + generateForRow(spreadsheet, cell.getRow()); +} + +function generateForAllRows() { + const spreadsheet = SpreadsheetApp.getActive(); + + const row_count = spreadsheet + .getActiveSheet() + .getDataRange() + .getNumRows(); + + for (let row_num = 2; row_num < row_count; row_num++) { + generateForRow(spreadsheet, row_num); + } +}