【问题标题】:dynamic values in websites and docs网站和文档中的动态值
【发布时间】:2020-03-30 16:40:15
【问题描述】:

假设我的公司有一个网站,其中包含各种文本。其中包含的文本之一是我的人力资源总监的姓名。他/她的名字可能会在我们网站的不同页面和文件中出现 20 或 30 次。而且,如果发生变化并且我聘请了新的人力资源总监,则必须有人手动更改这 20 或 30 个值。

必须有更好的方法来做到这一点。一种选择是在所有情况下清理个人数据的网站,但“联系人力资源总监”,然后有一个值“人力资源总监是......”并超链接人力资源总监的所有实例到员工页面。但我对动态值感兴趣。

首先,假设我有this Google Docthis Google Sheet。当我更改 Google Sheet 上的值时,如何更改 Google Doc 上的值?

【问题讨论】:

  • 我刚刚意识到这些问题有多么不同(来自 Google 表格的网站价值群体和来自 Google 表格的 Google 文档群体),但我需要这两个问题的答案。

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


【解决方案1】:

您可以使用应用程序脚本从工作表生成文档。

您将转到工作表中的工具 -> 脚本编辑器。

每次运行此脚本时,它都会生成一个新文档,其中包含您工作表中的值。

       function myFunction() {
  var doc = DocumentApp.create('HR Sheet');
  var data = SpreadsheetApp.getActive().getDataRange().getValues()
  var body = doc.getBody();
  body.appendParagraph(data[1][1]);
}

如果您运行此脚本,它将生成一个新工作表并将人力资源总监的姓名放在工作表上。

有用的链接: Google Docs documentation with scripting

【讨论】:

    【解决方案2】:

    您想要执行以下操作:

    • 从工作表中获取ROLESNAMES 的列表。
    • 对于每个 ROLE/NAME 对,在 Google 文档中查找特定值,并将该值替换为对应的 NAME

    您可以使用replaceText(searchPattern, replacement) 来实现此目的。可能是这样的:

    function findAndReplace() {
      // Get "Sheet1", where data is:
      var sheet = SpreadsheetApp.openById("your-spreadsheet-id").getSheetByName("Sheet1");
      // Get the document body:  
      var doc = DocumentApp.openById("your-doc-id").getBody();
      // Get the "ROLE/NAME" values:
      var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 2).getValues();
      // For each "ROLE/NAME" pair, replace text:
      values.forEach(row => body.replaceText("{{" + row[0] + "}}", row[1]));
    }
    

    注意:

    • 在此示例中,要在 Doc 中查找的值是使用每个相应的角色构建的,具有以下模式:{{your-role-name}}[ 是正则表达式的特殊字符,所以我认为使用{{ 更适合这种情况。

    参考:

    【讨论】:

      【解决方案3】:

      这些答案非常棒:Google Docs(这是我问的问题)。但是回复:网站,我发现这个非常有用的插件,TablePress 和扩展,单单元内容简码。在 Wordpress 页面中填充我的人力资源总监就像使用简码 [table-cell id=1 cell=C3 /] 一样简单。

      我现在正在使用自动刷新,它会定期从 URL 重新填充上传的表格,因此我不必每次都重新上传 Google 表格。

      对于我在 Wordpress 页面上填充 Google 表格值的目的,它看起来可以 100% 工作。

      【讨论】:

        猜你喜欢
        • 2013-12-14
        • 1970-01-01
        • 2015-04-06
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 2018-09-14
        • 2017-05-15
        • 1970-01-01
        相关资源
        最近更新 更多