根据下面的代码,我期望 AppScript 复制我的文档,然后将 {{resultID}} 的所有实例替换为 12345。我收到错误。
function generateReport() {
var doc = DriveApp.getFileById('asdfasdfasdfasdf').makeCopy('Document 1');
var newDocID = doc.getId();
var body = newDoc.getBody();
body.newReplaceAllTextRequest('{{resultID}}','12345');
}
我尝试了上面的脚本,虽然它成功创建了文档的副本,但它不会替换文本。
replaceText()
newReplaceAllTextRequest()
需要使用Docs V1 API。使用现有的 replaceText()
方法来代替要简单得多。
尝试用以下代码替换您的代码:
function generateReport() {
var doc = DriveApp.getFileById('doc_id').makeCopy('Document 1');
var newDocID = doc.getId();
var body = DocumentApp.openById(newDocID).getBody();
body.replaceText('{{resultID}}', '12345');
}
您需要先使用 DocumentApp 打开新文档,然后才能对其进行编辑。 根据 to this post, 最好使用 <> 而不是 {{XXXX}
function generateReport() {
var originalFile = DriveApp.getFileById('*****FILE_ID_HERE*********')
var copiedFile = originalFile.makeCopy('Document 1');
var newDocID = copiedFile.getId();
// Open de Document using DocumentApp now, so we can edit it.
var newDoc = DocumentApp.openById(newDocID)
var body = newDoc.getBody();
// I've replaced the {{ by <<, because that can cause some troubles... The script might think you are trying to use a regex.
body.replaceText('<<resultID>>','12345');
// Save and close the doc. (otherwise, changes won't be visible immediatly...)
newDoc.saveAndClose()
}