【问题标题】:Format Currency Value Apps Script on Spreadsheet在电子表格上格式化货币价值应用脚本
【发布时间】:2020-02-13 15:56:50
【问题描述】:

在我的 google 表格中使用此脚本(根据所选行自动生成一个文档),对于货币值,返回 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!')
  
}

Cooper 版本的代码:

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!');
}

【问题讨论】:

    标签: google-apps-script google-sheets spreadsheet


    【解决方案1】:

    对于非 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!');
    }
    

    【讨论】:

    • 评论不用于扩展讨论;这个对话是moved to chat
    • 仅当您认为对话尚未结束时
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多