Google Sheet Script: создайте копию в формате PDF в папке (Google Drive) - PullRequest
0 голосов
/ 25 апреля 2020

Это код, который я пытаюсь использовать, он правильно создает PDF. Что я хочу изменить, так это где он сохраняет новый файл PDF. я хочу сохранить в папке, чье имя хранится в ячейке в VAR-sourceSheet

пример: ячейка A1 листа 2 содержит текст «Имя моей папки» при создании PDF, сохраните его в папке, которая уже существует под названием «Имя моей папки.

Спасибо за любую помощь, я вовсе не программист.

    function generatePdf() {

  // Get active spreadsheet.

  var sourceSpreadsheet = SpreadsheetApp.getActive();



  // Get active sheet.

  var sheets = sourceSpreadsheet.getSheets();

  var sheetName = sourceSpreadsheet.getActiveSheet().getName();

  var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);

  var Cell = sourceSpreadsheet.getActiveSheet().getRange("R2");


  // Set the output filename as SheetName.

  var pdfName = sheetName;



  // 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);
    var newFile = folder.createFile(theBlob);



  // Delete the temporary sheet.

  DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...