【问题标题】:Google App Script Google Doc Replace Text in BodyGoogle App Script Google Doc 替换正文中的文本
【发布时间】:2020-10-01 02:59:33
【问题描述】:

我在使用应用脚本替换 Google 文档中的文本时遇到了问题。

在文档中,我有某些文本,例如 {{Date ofbirth (dd/mm/yyyy)}}。我需要用谷歌表单中用户输入的值替换它。我从 Google 表单中正确获取了值,但很少有替换模式,例如 {{Date ofbirth (dd/mm/yyyy)}} 没有被替换。其他替换字符,如 {{Name}} , {{Email}} 正常工作。这是我的部分替换脚本如下:

if(this.sheetColumns.length){    
        for(var k=0; k < this.sheetColumns.length; k++){
          docValues.replaceText(Utilities.formatString('\\{\\{(%s)\\}\\}', escape(this.sheetColumns[k])), this.formObj.namedValues[this.sheetColumns[k].trim()]);            
        }
}

任何帮助将不胜感激。

【问题讨论】:

  • 您能否共享文档(或可公开访问的副本)以及需要在脚本中作为 var 传递的值?

标签: google-apps-script google-docs-api


【解决方案1】:

获取{{Date of birth (dd/mm/yyyy)}} 的正则表达式是"({{Date of birth [(]dd[/]mm[/]yyyy[)]}})"

对于日期,我创建了一个表单来报告电子表格并从那里获取日期。在我的情况下,日期在第二列(应用程序脚本中的第 1 列),我已将日期格式化为 day-month-year,它类似于 Utilities.formatDate(sheetData[i][1], "GMT+02:00", "dd-MM-yyyy"

最终结果如下:

if(sheetData.length) {
    for (var i = 1; i < sheetData.length; i++) {
      body.replaceText("({{Date of birth [(]dd[/]mm[/]yyyy[)]}})",Utilities.formatDate(sheetData[i][1], "GMT+02:00", "dd-MM-yyyy"));
    }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2020-11-14
    • 2020-09-20
    相关资源
    最近更新 更多