使用 Google Apps 脚本,如何替换 Google 表格模板中的文本以制作新表格?

2024-07-04

我有一个谷歌表格 https://docs.google.com/spreadsheets/d/17qtLpnFTiMoE6blELSTQhtxkWa1hjjzI_PcaY-3cS1Q/edit?resourcekey=null#gid=465252365正在由一个谷歌表格 https://docs.google.com/forms/d/e/1FAIpQLSeAyA6zASzOX-o5noqLWKk9wGpeQXf6LWP5_EBXvi1ufH_N0w/viewform。我在用谷歌应用脚​​本 https://script.google.com/home/projects/1z1hOdOUyUVntZDxlQvWIE3PizyOM5tULbUecaIt7WqOubmmG76LdYe9F/edit添加一些额外的功能。请随时根据需要访问和修改这些内容,以便提供帮助。

我的目标是能够从 Google 表单中获取回复,将其放入 Google 表格中,然后使用模板文件,用回复填充模板,并将其作为电子邮件附件发送给我指定的任何人。

这是我的最终项目的简化版本,但过程应该保持不变,以便我可以从这个小型示例转换到更大的示例。

目前,在我的应用程序脚本 https://script.google.com/home/projects/1z1hOdOUyUVntZDxlQvWIE3PizyOM5tULbUecaIt7WqOubmmG76LdYe9F/edit,我有代码能够成功地复制模板文件并相应地命名它:

  //Enter collected info into Requirements Template
  const googleSheetTemplate = DriveApp.getFileById('1wqCwMhpuDLReU1hE1CbcDL-Vdw_4zge1xM6oOl34Ohg');
  const destinationFolder = DriveApp.getFolderById('1GxNZQmP8mxHBhVl5AMoqBFs8sAIYzcm3');

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 2');

  const copy = googleSheetTemplate.makeCopy(`${row[3]}, ${row[0]} Vehicle Order` , destinationFolder);
  const newSheet = SpreadsheetApp.openById(copy.getId());
  const A1 = newSheet.getActiveRange();

但是接下来的几行旨在能够在新复制的工作表中查找和替换某些字符串似乎无法正常工作。

  A1.createTextFinder("{{Customer}}").replaceAllWith(row[3]);
  A1.createTextFinder("{{Car}}").replaceAllWith(row[1]);
  A1.createTextFinder("{{Color}}").replaceAllWith(row[2]);
  A1.createTextFinder("{{Delivery}}").replaceAllWith(row[5]);

我只是在新副本中得到相同的虚拟线。

I was 继另一篇文章之后 https://stackoverflow.com/a/66689546/7318270我在不同的问题上发现了这一点,但目标相同。我想要复制的大部分概念都来自从这篇博文 https://jeffreyeverhart.com/2020/09/29/auto-fill-a-google-doc-template-from-google-sheet-data/,但是他们使用 Google Doc,我希望使用 Google Sheet。最终,收到这张新工作表的人需要使用所提供的信息进行一些计算和操作,因此它仍然需要采用工作表形式。

我需要进行哪些修改才能成功地将模板中的文本替换为 Google 表单响应中提供的答案?


据我所知,这一行意味着工作表上的一些单元格被选择:

const A1 = newSheet.getActiveRange();

脚本将仅在这些单元格内搜索和替换。

您可能需要定义范围而不参考活动范围。像这样的东西:

const A1 = newSheet.getRange("A1:A"); // or "A1:Z", or .getDataRange()

不知道你需要什么范围。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Apps 脚本,如何替换 Google 表格模板中的文本以制作新表格? 的相关文章

随机推荐