PDF на другом диске Google - PullRequest
0 голосов
/ 05 июля 2018

У меня есть несколько техников, работающих с одним листом Google. Хотите сохранить PDF-файл с заполненного листа на определенном диске Google (myPMtechs@gmail.com) // поддельное электронное письмо только для индикации // и не на моем диске, а храните лист на моем диске. Почему-то часть идентификатора папки не работает, и я не могу понять, почему. Сценарий

// Get active spreadsheet.
var sourceSpreadsheet = SpreadsheetApp.getActive();

// Get active sheet.
var sheets = sourceSpreadsheet.getSheets();
var sheetName = sourceSpreadsheet.getActiveSheet().getName();
var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);

// Output filename.
var jobNo = sourceSpreadsheet.getRange('A10:A10').getValue();
var jobName = sourceSpreadsheet.getRange('B3:B3').getValue();
var doorNo = sourceSpreadsheet.getRange('B5:B5').getValue();
var date = sourceSpreadsheet.getRange('A8:A8').getDisplayValue();
var pdfName = date + " - " + jobNo + " - " + jobName + " - " + doorNo;

 // Get folder containing spreadsheet to save pdf in.
var parents = DriveApp.getFileById(sourceSpreadsheet.getId()).getParents();
if (parents.hasNext()) {
var folder = parents.next();
}
else {
folder = DriveApp.getRootFolder();
}

// Copy whole spreadsheet.
var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy("tmp_convert_to_pdf", folder))

// Delete redundant sheets.
var sheets = destSpreadsheet.getSheets();
for (i = 0; i < sheets.length; i++) {
if (sheets[i].getSheetName() != sheetName){
  destSpreadsheet.deleteSheet(sheets[i]);
}
}

var destSheet = destSpreadsheet.getSheets()[0];

// Repace cell values with text (to avoid broken references).
var sourceRange = sourceSheet.getRange(1,1,sourceSheet.getMaxRows(),sourceSheet.getMaxColumns());
var sourcevalues = sourceRange.getValues();
var destRange = destSheet.getRange(1, 1, destSheet.getMaxRows(),destSheet.getMaxColumns());destRange.setValues(sourcevalues);

// Save to pdf.
var theBlob = destSpreadsheet.getBlob().getAs('application/pdf').setName(pdfName);var newFile = folder.createFile(theBlob);

// Delete the temporary sheet.
DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true);

//Move the pdf file from rootfolder to the folder where the PMSheet are to be stored.
var files = DriveApp.getRootFolder().getFiles();
while (files.hasNext()) {
var file = files.next();
var destination = DriveApp.getFolderById("**Folder where files should go to**");
destination.addFile(file);
var pull = DriveApp.getRootFolder();
pull.removeFile(file);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...