【问题标题】:Append a New Table Row (1 Row 2 Columns) on Google Apps Script在 Google Apps 脚本上添加新表格行(1 行 2 列)
【发布时间】:2021-01-21 21:20:17
【问题描述】:

我正在尝试制作一个自动化脚本,根据来自 Google 表单的用户响应更新现有的 Google 文档。所以有 3 个问题(姓名、大学编号标识或国语 NIM,以及部门或 bidan),部门问题用于对每个受访者进行分类。

所以目标是每当提交表单时,文档也会更新。因此,我想让更新创建一个新行,其中包含一个包含模板字符串的单元格,该模板字符串已在电子表格的脚本中使用。但问题是它只为每一行附加一列,然而,这不是我打算发生的。我希望它更新 1 行和 2 列。

Screenshot Of the Google Form

Screenshot of the Google Docs Error

Screenshot of what I intended the Google Docs when it's updated to be

function appendTable(variabel){
      var rangePSDI = body.findText(variabel);
      var searchElement = body.findElement(DocumentApp.ElementType.TABLE, rangePSDI);
      element = searchElement.getElement();
      table = element.asTable();
      table.appendTableRow().appendTableCell(variabel);
  }

  if (bidang == 'PSDI') {
      body.replaceText('{{NamaPSDI}}', nama);
      body.replaceText('{{NIMPSDI}}', nim);
      appendTable("{{NamaPSDI}}");
      appendTable("{{NIMPSDI}}");
      return;
  } else if (bidang == 'PSDM') {
      body.replaceText('{{NamaPSDM}}', nama);
      body.replaceText('{{NIMPSDM}}', nim);
      appendTable("{{NamaPSDM}}");
      appendTable("{{NIMPSDM}}");
      return;
  }

【问题讨论】:

    标签: javascript google-apps-script google-docs google-forms


    【解决方案1】:

    appendTableRow 视为HTML 中的<tr>,您必须使用<td>appendTableCell 设置单元格。

    在 HTML 中查看 Table Row element

    试试这个:

    代码:

    function appendTable(){
      var doc = DocumentApp.openById('someid');
      var body = doc.getBody();
      var tables = body.getTables();
      var text = "PSDM";
      tables.forEach(table => {
        if(table.getCell(0,0).getText() == text){
          table.replaceText("{{Nama"+text+"}}", "test nama"+text)
          table.replaceText("{{NIM"+text+"}}", "test NIM"+text)
          var tr = table.appendTableRow();
          tr.appendTableCell("{{Nama"+text+"}}");
          tr.appendTableCell("{{NIM"+text+"}}");
        }
      })
    }
    

    之前:

    之后:

    PSDI

    PSDM

    【讨论】:

    • 但是如果我想更新 PSDM 表怎么办?因为目前我无法弄清楚如何更新特定的表
    • @TripleBritz - 您可以使用 body.getTables() 并遍历它并检查表中的第一个单元格是 PSDM 还是 PSDI,从那里我们可以确定要附加数据的表。请参阅上面的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2018-05-01
    • 2015-07-14
    • 1970-01-01
    相关资源
    最近更新 更多