【问题标题】:How can I use dynamic variable numbers in a loop?如何在循环中使用动态变量数?
【发布时间】:2022-07-26 21:55:55
【问题描述】:

我创建了一个小工具,允许我们使用 G 表作为 G doc 模板的源。本质上,它从 G 表中获取值并将模板中的占位符替换为相应的值。

我在这里声明变量:

  var MB_1 =  ws.getRange("C1").getValue();

在这里,我将文档的正文替换为相应的值:

  var docBody = DocumentApp.openById(createdFileId).getBody();
  docBody
  .replaceText("{mbd_1}", MB_1) 

问题是我有 300 个变量,我想避免这样的事情:

var docBody = DocumentApp.openById(createdFileId).getBody();
  docBody
  .replaceText("{mbd_1}", MB_1) 
  .replaceText("{mbd_2}", MB_2) 
  .replaceText("{mbd_3}", MB_3) 
  .replaceText("{mbd_4}", MB_4) 
  .replaceText("{mbd_5}", MB_5) 
  .replaceText("{mbd_6}", MB_6) 
  .replaceText("{mbd_7}", MB_7) 
  .replaceText("{mbd_8}", MB_8) 
  .replaceText("{mbd_9}", MB_9) 
  .replaceText("{mbd_10}", MB_10)

所以,长话短说:如何循环替换文本部分以获取 300 个变量?我已经看到了“这个”的解决方案。但我不知道如何在这种情况下使用它。

非常感谢您的支持。

【问题讨论】:

  • 他们在同一列吗?展示如何声明其他 MB 变量。
  • 您可能想看看这个公认的答案:stackoverflow.com/a/14991272/1101930。遍历数组时,您可以限制每列每个单元格的代码

标签: google-apps-script


【解决方案1】:

而不是为每个单个值使用一个变量,并且一次读取一个值,因为它正在完成

var MB_1 =  ws.getRange("C1").getValue();

一次读取所有值

var MB = ws.getDataRange().getValues()

然后使用数组索引如下

docBody
  .replaceText("{mbd_1}", MB[0][2]) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多