【发布时间】:2021-12-22 17:41:04
【问题描述】:
我正在尝试使用 Google 表格来填充 Google 文档模板。我正在从单元格中提取输入并使用 targetDocBody.replaceText 函数。一般来说,它可以工作,但我想更改日期和货币金额的格式。
我现在可以使用 data[x][y].toLocaleDateString() 来填充 MM/dd/YY(例如,“12/21/2021”),但我想使用setNumberFormat("mmmm d, yyyy")(例如,“2021 年 12 月 21 日”)。
Google App 脚本中是否有可以在 Google Docs 脚本中使用 setNumberFormat 的等效函数?
TIA!
见下面的代码:
function createDocsFromTemplate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getSheetByName("Case Tracking Sheet");
var file = DriveApp.getFileById(ss.getId());
var parentFolders = file.getParents()
var parentFoldersId= parentFolders.next().getId();
var colBdata = ws.getRange("B1:B159").getValues();
for (let i = 0; i <= 158; i++) {
if(colBdata[i][0] === true){
var data = ws.getDataRange().getValues();
var parentFolder, parentFolders;
var childFolder, childFolders;
parentFolder = DriveApp.getFolderById(parentFoldersId);
var destinationFolderName = data[i][5] + " - " + data[i][7] + " - " + data[i][11];
console.log(destinationFolderName);
childFolders = parentFolder.getFoldersByName(destinationFolderName);
while (childFolders.hasNext()) {
childFolder = childFolders.next();
}
if (!childFolder) {
parentFolder.createFolder(destinationFolderName);
}
var destinationFolderLookup = DriveApp.getFoldersByName(destinationFolderName);
var destinationFolderId = destinationFolderLookup.next().getId();
var destinationFolder = DriveApp.getFolderById(destinationFolderId);
var documentTemplateName = data[3][4];
var documentTemplateFolder = DriveApp.getFolderById("[REMOVED FOR SECURITY]");
var documentTemplateId = documentTemplateFolder.getFilesByName(documentTemplateName).next().getId();
var documentTemplate = DriveApp.getFileById(documentTemplateId);
var copyTargetDoc = documentTemplate.makeCopy(documentTemplateName, destinationFolder);
var targetDoc = DocumentApp.openById(copyTargetDoc.getId());
var targetDocBody = targetDoc.getBody();
targetDocBody.replaceText('{{County}}', data[i][4]);
targetDocBody.replaceText('{{COUNTY}}', data[i][4].toUpperCase());
targetDocBody.replaceText('{{Plaintiff}}', data[i][6]);
targetDocBody.replaceText('{{PLAINTIFF}}', data[i][6].toUpperCase());
targetDocBody.replaceText('{{Defendant 1}}', data[i][7]);
targetDocBody.replaceText('{{DEFENDANT 1}}', data[i][7].toUpperCase());
targetDocBody.replaceText('{{Defendant 2}}', data[i][8]);
targetDocBody.replaceText('{{DEFENDANT 2}}', data[i][8].toUpperCase());
targetDocBody.replaceText('{{Defendant 3}}', data[i][9]);
targetDocBody.replaceText('{{DEFENDANT 3}}', data[i][9].toUpperCase());
targetDocBody.replaceText('{{Defendant 4}}', data[i][10]);
targetDocBody.replaceText('{{DEFENDANT 4}}', data[i][10].toUpperCase());
targetDocBody.replaceText('{{Street Address}}', data[i][11]);
targetDocBody.replaceText('{{City}}', data[i][12]);
targetDocBody.replaceText('{{State}}', data[i][13]);
targetDocBody.replaceText('{{ZIP}}', data[i][14]);
targetDocBody.replaceText('{{Monthly Rent}}', data[i][15].toFixed(2));
targetDocBody.replaceText('{{Rent Due}}', data[i][16].toLocaleDateString());
targetDocBody.replaceText('{{Balance}}', data[i][17].toFixed(2));
targetDocBody.replaceText('{{Balance Date}}', data[i][18].setNumberFormat("mmmm d, yyyy"));
targetDocBody.replaceText('{{Case Number}}', data[i][19]);
targetDocBody.replaceText('{{Division}}', data[i][20]);
targetDocBody.replaceText('{{Date Today}}', data[i][21].toLocaleDateString());
targetDocBody.replaceText('{{Hearing Date}}', data[i][22].toLocaleDateString());
targetDocBody.replaceText('{{Hearing Time}}', data[i][23]);
targetDocBody.replaceText('{{Judgment Date}}', data[i][24].toLocaleDateString());
targetDocBody.replaceText('{{Judgment Rent}}', '$'+data[i][25].toFixed(2));
targetDocBody.replaceText('{{Judgment Late}}', '$'+data[i][26].toFixed(2));
targetDocBody.replaceText('{{Judgment Util}}', '$'+data[i][27].toFixed(2));
targetDocBody.replaceText('{{Judgment Addl}}', '$'+data[i][28].toFixed(2));
targetDocBody.replaceText('{{Judgment Atty}}', '$'+data[i][29].toFixed(2));
targetDocBody.replaceText('{{Judgment SPS}}', '$'+data[i][30].toFixed(2));
targetDocBody.replaceText('{{Judgment Costs}}', '$'+data[i][31].toFixed(2));
targetDocBody.replaceText('{{Judgment TOTAL}}', '$'+data[i][32].toFixed(2));
targetDocBody.replaceText('{{Bill Attorney Fee}}', data[i][33].toFixed(2));
targetDocBody.replaceText('{{Bill Filing Fee}}', data[i][34].toFixed(2));
targetDocBody.replaceText('{{Bill SPS}}', data[i][35].toFixed(2));
targetDocBody.replaceText('{{Bill Writ}}', data[i][36].toFixed(2));
targetDocBody.replaceText('{{Bill TOTAL}}', data[i][37].toFixed(2));
targetDocBody.replaceText('{{Invoice number}}', data[i][38]);
targetDocBody.replaceText(', , , ,', ',');
targetDocBody.replaceText(', , ,', ',');
targetDocBody.replaceText(', ,', ',');
targetDocBody.replaceText(',,,,', ',');
targetDocBody.replaceText(',,,', ',');
targetDocBody.replaceText(',,', ',');
targetDocBody.replaceText(' , , , ', ', ');
targetDocBody.replaceText(' , , ', ', ');
targetDocBody.replaceText(' , ', ', ');
targetDocBody.replaceText('\\v\v\v\v+','\r');
targetDocBody.replaceText('\\v\v\v+','\r');
targetDocBody.replaceText('\\v\v+','\r');
targetDocBody.replaceText(' \\v \\v \\v \\v+','\r');
targetDocBody.replaceText(' \\v \\v \\v+','\r');
targetDocBody.replaceText(' \\v \\v+','\r');
targetDoc.saveAndClose();
var newDocId = copyTargetDoc.getId();
var getPDFCopy = DriveApp.getFileById(newDocId).getAs("application/pdf");
var savePDFCopy = getPDFCopy.setName(documentTemplateName+".pdf");
destinationFolder.createFile(savePDFCopy);
}
}
}
【问题讨论】:
-
使用 javascript
Intl。搜索 mdn。
标签: google-apps-script google-sheets google-docs