Формат Валюты Значение Приложения Сценарий в таблице - PullRequest
0 голосов
/ 13 февраля 2020

с этим сценарием в моих листах Google (которые автоматически генерируют do c на основе выбранной строки) для значения валюты возвращаются значения, такие как 10245,1326666667 (на листе, который я применил к столбцам с валютой нумерует функцию, которая форматирует номер как € xxx.xxx). Как я могу сгенерировать значение, как € xxx.xxx, xx для валюты?

var TEMPLATE_ID = ''

var PDF_FILE_NAME = ''

function onOpen() {

  SpreadsheetApp
    .getUi()
    .createMenu('CONTRATTO PSB  vecchi clienti')
    .addItem('Genera CONTRATTO PSB  vecchi clienti', '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!')
  
}

код с версией Купера:

var TEMPLATE_ID = 'xxxx'

var PDF_FILE_NAME = ''

function onOpen() {

  SpreadsheetApp
    .getUi()
    .createMenu('xxxx')
    .addItem('xxxx', '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();
  const copyDoc=DocumentApp.openById(copyFile.getId());
  const copyBody=copyDoc.getActiveSection();
  const activeSheet=SpreadsheetApp.getActiveSheet();
  const numberOfColumns=activeSheet.getLastColumn();
  const activeRowIndex=activeSheet.getActiveRange().getRowIndex();
  activeSheet.getRange(activeRowIndex,1,1,numberOfColumns).setNumberFormat("[$€]#,##0.00");
  const activeRow=activeSheet.getRange(activeRowIndex, 1, 1, numberOfColumns).getDisplayValues();
  const headerRow=activeSheet.getRange(1, 1, 1, numberOfColumns).getValues();
  for (let columnIndex=0;columnIndex < headerRow[0].length; columnIndex++) {
    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', activeRow[0][columnIndex]);                         
  }
  copyDoc.saveAndClose();
  SpreadsheetApp.getUi().alert('Contratto creato!');
}

1 Ответ

1 голос
/ 13 февраля 2020

Для не V8

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();
  var copyDoc=DocumentApp.openById(copyFile.getId());
  var copyBody=copyDoc.getActiveSection();
  var activeSheet=SpreadsheetApp.getActiveSheet();
  var numberOfColumns=activeSheet.getLastColumn();
  var activeRowIndex=activeSheet.getActiveRange().getRowIndex();
  activeSheet.getRange(activeRowIndex,1,1,numberOfColumns).setNumberFormat("[$€]#,##0.00");
  var activeRow=activeSheet.getRange(activeRowIndex, 1, 1, numberOfColumns).getDisplayValues();
  var headerRow=activeSheet.getRange(1, 1, 1, numberOfColumns).getValues();
  for (var columnIndex=0;columnIndex < headerRow[0].length; columnIndex++) {
    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', activeRow[0][columnIndex]);                         
  }
  copyDoc.saveAndClose();
  SpreadsheetApp.getUi().alert('Contratto creato!');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...