Я создал шаблон с несколькими страницами. После использования шаблона я хочу автоматически удалить все неиспользуемые страницы.
Вот как это работает. Я создал шаблон сертификата с 25 страницами с заполнителями для имени и других деталей. Каждая страница является сертификатом. После просмотра данных приведенный ниже код заменяет заполнители данными из таблиц Google. Как только это будет выполнено - я хочу удалить все лишние страницы в документе - например: если будут изменены только 5 страниц шаблона, я хочу удалить оставшиеся 20 страниц шаблона из документа.
Любые другие предложения по улучшению приветствуются, так как это мой первый App Script.
Дополнение для уточнения вопроса:
Скрипт берет данные из Google Sheet, который содержит сотни строк данных. Например, если необходимо создать 5 сертификатов, сценарий получает все данные и цикл и ищет определенный флаг (cert_data [i] [6] == 1), чтобы определить строки данных, которые должны использоваться для сертификата. , Как только флаг найден, данные в строке сохраняются в переменных и используются для замены заполнителей в файле шаблона. После замены данных во всех отмеченных строках - в этом примере заменяются только 5 страниц шаблона. Следовательно, в шаблоне будет использоваться баланс из 20 страниц, который не использовался - я хочу удалить эти страницы.
function createDocument() {
//Setting ID for database
var SPREADSHEET_ID = "doc ID"
var spreadsheet = SpreadsheetApp.openById(SPREADSHEET_ID);
var worksheet = spreadsheet.getSheetByName("Sheet1");
var cert_data = worksheet.getDataRange().getValues();
//Setting template ID
var templateId = 'template ID goes here';
//Make a copy of the template file
var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
//Get the document body as a variable
var body = DocumentApp.openById(documentId).getBody();
//Foramt date
var curDate = Utilities.formatDate(new Date(), "GMT+1", "dd MMMM yyyy")
var d = 0;
//Looping through all the data that is in the Google Sheet
for(var i = 1; i < cert_data.length ; i++){
var curdata = cert_data[i][6];
//Checking if the row data is to be used to create certificate
if (cert_data[i][6] == 1) {
var training_type = cert_data[i][12];
var hours = cert_data[i][9];
var user_name = cert_data[i][1];
var NIC = cert_data[i][3];
var date_completed = Utilities.formatDate(cert_data[i][8], "GMT+1", "dd MMMM yyyy");
var company = cert_data[i][2];
var cert_number = cert_data[i][0];
var date_now = curDate;
//Setting training names
if (training_type == "01G") {training_type = "Basic First Aid" + String.fromCharCode(10) + "& Automated External" + String.fromCharCode(10) + "Defibrillator Certificate"; var file_name = 'AED Training';}
if (training_type == "01B") {var file_name = 'Refresher Receipts';}
d++;
//Insert the data into the file
body.replaceText('{training_type' + d + '}', training_type);
body.replaceText('{hours' + d + '}', hours);
body.replaceText('{name' + d + '}', user_name);
body.replaceText('{NIC' + d + '}', NIC);
body.replaceText('{date_completed' + d + '}', date_completed);
body.replaceText('{company' + d + '}', company);
body.replaceText('{cert_numb' + d + '}', cert_number);
body.replaceText('{date_now' + d + '}', date_now);
}
}
//d is the number of pages used from the template file
//I want to delete all the balance pages (i.e. 25-d = x)
//Rename the copied file
DriveApp.getFileById(documentId).setName(file_name + ' - ' + company);
}