Создать папку и дать доступ
Очень нужна помощь.
Есть скрипт, который генерирует договор в гугл.док. Задача проверить есть ли на диске папка с именем: principal_shart_name, если нет создать. Положить туда сгенерированный файл, дать доступ к файлу.
Сам скрипт:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu("My menu")
.addItem('Create Document', 'DocGenerator')
.addToUi()
}
//main function
function DocGenerator() {
var sm = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
//find clients info
var row_active = sm.getActiveCell().getRow();
var principal_shart_name = sm.getRange(row_active, 1).getValue();
var principal = getClientData(principal_shart_name);
//find documents info
var document = {
id:sm.getRange(row_active, 3).getValue(),
date:sm.getRange(row_active, 4).getValue(),
document_price:sm.getRange(row_active, 5).getValue(),
document_date_end:sm.getRange(row_active, 6).getValue(),
}
// find template
var docName = sm.getRange(row_active, 2).getValue();
var docID = getTemlateID(docName);
var docNameCopy = docName +"_" + document.id +"_" + principal.name
var file = DriveApp.getFileById(docID);
file.makeCopy(docNameCopy);
var fileCopy = DriveApp.getFilesByName(docNameCopy).next();
var fileCopyID = fileCopy.getId();
// replacement
var body = DocumentApp.openById(fileCopyID).getBody();
body.replaceText('{document_id}', document.id);
body.replaceText('{document_date}', document.date);
body.replaceText('{document_price}', document.document_price);
body.replaceText('{document_date_end}', document.document_date_end);
body.replaceText('{principal_name}', principal.name);
body.replaceText('{principal_short_name}', principal.short_name);
body.replaceText('{principal_id}', principal.id);
body.replaceText('{principal_id_dateOfIssue}', principal.id_dateOfIssue);
}
function getClientData(sh_name) {
var sc = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Clients");
var iMax = sc.getLastRow();
for(var i=2; i <= iMax; i++) {
if(sc.getRange(i, 1).getValue() == sh_name) {
break;
}
}
var client = {
short_name: sc.getRange(i, 1).getValue(),
name: sc.getRange(i, 2).getValue(),
id: sc.getRange(i, 6).getValue(),
id_dateOfIssue: sc.getRange(i, 8).getValue(),
};
return client;
}
function getTemlateID(docName) {
var st = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Templates');
var iMax = st.getLastRow();
for(var i=2; i <= iMax; i++) {
if(st.getRange(i, 1).getValue() == docName) {
var docId = st.getRange(i, 2).getValue();
return docId;
}
}
}```
Источник: Stack Overflow на русском