.gs
var sheetName = 'Sheet1'
var scriptProp = PropertiesService.getScriptProperties()
function doPost (e){
Logger.log(JSON.stringify(e))
if (!e || !e.parameter){
return;
}
var lock = LockService.getScriptLock();
lock.tryLock(10 * 1000);
try {
var ss = SpreadsheetApp.getActive();
var sheet1 = ss.getSheetByName(sheetName);
var headers = sheet1.getRange(1, 1, 1, sheet1.getLastColumn()).getValues()[0];
var nextRow = sheet1.getLastRow() + 1;
var newRow = headers.map(function(header) {
return header === 'Timestamp' ? new Date() : e.parameter[header]
});
sheet1.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);
var TEMPLATE_ID = '....ID....'
var PDF_FILE_NAME = newRow[3];
var RESULTS_FOLDER_ID = '....ID....'
var templateFile = DriveApp.getFileById(TEMPLATE_ID);
var copyFile = templateFile.makeCopy();
var copyId = copyFile.getId();
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
var headerValue;
var activeCell;
var activeRow = sheet1.getRange(nextRow, 1, 1, newRow.length).getValues();
for (var columnIndex = 0; columnIndex < headers.length; columnIndex++){
headerValue = headers[columnIndex]
activeCell = activeRow[0][columnIndex]
copyBody.replaceText('<<' + headerValue + '>>', activeCell);
copyDoc.saveAndClose();
var newFile = DriveApp.createFile(copyFile.getAs('application/pdf'));
copyFile.setTrashed(true);
newFile.setName(PDF_FILE_NAME);
if (RESULTS_FOLDER_ID !== ''){
DriveApp.getFolderById(RESULTS_FOLDER_ID).addFile(newFile)
DriveApp.removeFile(newFile)
}
}
return ..
}
catch (e){
return ContentService ..
}
finally{
lock.releaseLock()
}
}
Назначение кода:
Я получаю данные на листе успешно, а также создается новый файл PDF на диске, но с следующие ошибки:
- У меня должно быть 4 обновленных поля, но только первое обновлено в pdf
В шаблоне сделайте c У меня есть: Имя1, Имя2, Имя3, Имя4 должны быть обновлены, как в заголовке листа
Так что, когда новая строка отправляется на лист, например, с Томом, Майком, Джоном, Энди - я получаю это в PDF-файле Том, Имя2, Имя3, Имя4 (обновляется только первое значение)
- Перенаправлено на {"result": "error", "error": {"name": "Exception "}} после отправки
. html
<!DOCTYPE html>
<html lang="en">
<body>
<head>
<base target="_top">
</head>
<form action="....URL...." target="_blank" method="POST">
<div>
Name1
<input type="text" required name="Name1">
</div>
<div>
Name2
<input type="text" required name="Name2">
</div>
<div>
Name3
<input type="text" required name="Name3">
</div>
<div>
Name4
<input type="text" required name="Name4">
</div>
<button type="submit">Post</button>
</form>
</body>
</html>
Любая помощь приветствуется. Заранее спасибо