我是Google Apps脚本的新手,也是一般的编码。我想使用“邮件合并”类型的脚本通过使用电子表格中的数据填充模板文档来生成自定义文档。 我在这里找到的脚本非常完美:Google Apps Script to create PDF, 除了它生成PDF,而不是Google文档文件,这是我需要的。
我尝试修改此脚本以输出Google文档而不是PDF,但到目前为止没有成功。
原始剧本的相关部分如下:
// Create the PDF file, rename it if required and delete the doc copy
copyDoc.saveAndClose()
var newFile = DriveApp.createFile(copyFile.getAs('application/pdf'))
if (PDF_FILE_NAME !== '') {
newFile.setName(PDF_FILE_NAME)
}
copyFile.setTrashed(true)
具体来说,我无法找到适合此行的修改:
var newFile = DriveApp.createFile(copyFile.getAs('application/pdf'))
我最接近的是替换以下内容,这只会产生一个空白文档:
var newFile = DocumentApp.create(‘My_File_Name')
我确信有一个简单的解决方案,但我无法让它发挥作用。
答案 0 :(得分:1)
您的新文档是在您正在查看的代码行之前创建的,在此处:
var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
然后脚本继续填写模板的副本,生成PDF,然后删除文档。你只需要停止那些最后的步骤!
变化:
// Create the PDF file, rename it if required and delete the doc copy
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('New PDF file created in the root of your Google Drive')
...到...
// Rename the file if desired, then close it
if (PDF_FILE_NAME !== '') {
copyDoc.setName(PDF_FILE_NAME)
}
copyDoc.saveAndClose()
SpreadsheetApp.getUi().alert('New doc created in the root of your Google Drive')
在调整此类代码时,重命名PDF_FILE_NAME
之类的变量也很有帮助,因此它们具有与更新代码相关的含义。但即使没有这个,这个简单的改变应该可以解决问题。