【发布时间】: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