我使用脚本和带有Google文档的模板,从一张Google(填充了Google表单)生成PDF文件。 但这样做我得到谷歌表格日期是dd / mm / yyyy格式,而在最终的PDF中,它就像这样= 2016年2月27日星期六00:00:00 GMT + 0100(CET)
脚本的“核心”是(对于google表格的每一行)
var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(FileName);
var copyId = copyFile.getId();
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
for (;columnIndex < headerRow[0].length; columnIndex++) {
copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', RowData[i][columnIndex])
}
columnIndex = 0;
// Create the PDF file, rename it if required and delete the doc copy
copyDoc.saveAndClose();
var dir = DriveApp.getFoldersByName("PDF FOLDER").next();
var newFile = dir.createFile(copyFile.getAs('application/pdf'));
if (PDF_FILE_NAME !== '') {
newFile.setName(FileName)
copyFile.setTrashed(true)
}
在哪里(以及如何)我可以控制日期类型的RowData [i]以获得doc / PDF文件中的正确格式? (在模板中,使用%date name%指令进行有效值替换)
由于 万尼
答案 0 :(得分:0)
当您在替换循环中的文档中插入日期时,应该使用格式化字符串转换日期。
要使用的功能是Utilities.formatDate
,并且是documented here。
使用非常简单,例如:
var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
注意,不要使用GMT或任何GMT + XX值,最好使用Session.getScriptTimeZone()
,它会根据您的时区自动给出正确的值(即使是夏令时)。
编辑:
您也可以尝试getDisplayValue()
,它会将值返回为a string representation of what is shown in a cell。