Может ли Google App Script сохранить Google Do c локально? - PullRequest
0 голосов
/ 21 января 2020

Этот скрипт приложения в моих листах Google может сохранять на Google Диске Google Do c на основе значения Dynami c, указанного в различных столбцах.

Как сохранить его локально, а не сохранить на диске?

Это скрипт приложения на листе:


var TEMPLATE_ID = '1mqANOhwNQ-dynlR5GO9ybC5UgGsDTz_1K8CUyXw4-SM'

var PDF_FILE_NAME = ''

function onOpen() {

  SpreadsheetApp
    .getUi()
    .createMenu('Crea Contratto')
    .addItem('Crea Contratto', 'createPdf')
    .addToUi()

}

function createPdf() {

  if (TEMPLATE_ID === '') {

    SpreadsheetApp.getUi().alert('TEMPLATE_ID needs to be defined in code.gs')
    return
  }

  var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
      copyId = copyFile.getId(),
      copyDoc = DocumentApp.openById(copyId),
      copyBody = copyDoc.getActiveSection(),
      activeSheet = SpreadsheetApp.getActiveSheet(),
      numberOfColumns = activeSheet.getLastColumn(),
      activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
      activeRow = activeSheet.getRange(activeRowIndex, 1, 1, numberOfColumns).getValues(),
      headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues(),
      columnIndex = 0

  for (;columnIndex < headerRow[0].length; columnIndex++) {

    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', 
                         activeRow[0][columnIndex])                         
  }

  copyDoc.saveAndClose()

  /** var newFile = DriveApp.createFile(copyFile.getAs('application/pdf'))  

  * if (PDF_FILE_NAME !== '') {

    newFile.setName(PDF_FILE_NAME)
  } */

  // copyFile.setTrashed(true)

  SpreadsheetApp.getUi().alert('Contratto creato!')

}

1 Ответ

1 голос
/ 22 января 2020

Поскольку App Script выполняется на стороне сервера, невозможно напрямую загрузить файл локально на ваш компьютер.

Здесь есть полезная ссылка , которая ведет к использованию HTML Сервиса для запуска клиентской стороны, которая может загрузить файл локально.

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