Add function/menu item to generate document for each row in the sheet
This commit is contained in:
parent
2b377bbfca
commit
76b4f2a73c
37
Code.ts
37
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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user