【问题标题】:Autofilling info from Google Forms to Sheets将信息从 Google 表单自动填充到表格
【发布时间】:2020-11-06 02:56:42
【问题描述】:

我是一名律师,在这里完全不符合他的要求。我一直在研究并在 Google Script 上运行测试,但是,我一直遇到问题。

目标:

第 1 步 - 有人填写 Google 表单(信息包括姓名、号码等);

第 2 步 - 在 Google Drive 中自动生成一个新的模板电子表格;

第 3 步 - 表单中的信息会自动填充到新模板电子表格中。

谁能救我一命并帮助我?或者至少让我摆脱痛苦哈哈。

提前非常感谢!

更新#1:

根据评论,这就是我所在的位置。好消息是它完成了第 1 步和第 2 步。坏消息是我还在搞清楚第 3 步,这可能是因为我对这方面太陌生了。

无论如何,这就是第 1 步和第 2 步的内容:

function autoFillCaseInfofromIntake(e) {
  var Timestamp = e.values[0];
  var Source = e.values[1];
  var FullName = e.values[2];
  
  var templatefile = DriveApp.getFileById("I inserted ID here");

  var templatepopulatedfolder = DriveApp.getFolderById("I inserted ID here");
  
  var copy = templatefile.makeCopy(FullName, templatepopulatedfolder);
  
  var sheet = DocumentApp.openById(copy.getId());
 
  sheet.saveAndClose();

再次抱歉,我的无知!

更新 #2:

非常感谢 @arul selvan 和 @Iamblichus 帮助我到达我需要去的地方!

以防万一将来有人需要答案:

function autoFillCaseInfofromIntake(e) {
  var Timestamp = e.values[0];
  var Source = e.values[1];
  var FullName = e.values[2];
  
  var templatefile = DriveApp.getFileById("I inserted ID here");

  var templatepopulatedfolder = DriveApp.getFolderById("I inserted ID here");
  
  var copy = templatefile.makeCopy(FullName, templatepopulatedfolder);
  
  var newsheet = SpreasheetApp.openById(copy.getId());
  var sht1 = newsheet.getSheetByName("Sheet1");//open the default sheet 1 or if you want you can rename the sheet or create a new sheet
  sht1.getRange("A1").setValue(Source); //populate any cell with value captured by the form
  sht1.getRange("B1").setValue(FullName);

}

【问题讨论】:

  • 如果您共享表单的副本,可能会对我们有所帮助。你有没有采取任何步骤来创建一个脚本来做你想做的事?本网站旨在帮助您解决特定问题,而不是从头开始设计解决方案。以下是如何提出一个好问题,这将增加人们花时间帮助您解决问题的机会:stackoverflow.com/help/how-to-ask
  • 感谢您的快速响应。表格非常基本(再次——姓名、号码等)。就像我在 OP 中所说的那样,我一直在努力解决所有问题,但是,我并没有取得太大进展。我会用我所在的位置更新 OP!
  • 您有电子表格吗?你为什么使用DocumentApp?如果您使用的是电子表格,它应该是SpreadsheetApp。另外,请说明您希望如何将数据写入工作表。附加到第一个空行?在哪一列,以什么顺序,以及哪些数据?是 TimestampSourceFullName 到 A 到 C 列吗?

标签: google-apps-script google-sheets automation google-forms


【解决方案1】:

你破解了困难的第 1 步和第 2 步。第 3 步很简单。

function autoFillCaseInfofromIntake(e) {
  var Timestamp = e.values[0];
  var Source = e.values[1];
  var FullName = e.values[2];
  
  var templatefile = DriveApp.getFileById("I inserted ID here");

  var templatepopulatedfolder = DriveApp.getFolderById("I inserted ID here");
  
  var copy = templatefile.makeCopy(FullName, templatepopulatedfolder);
  
  var newsheet = SpreadsheetApp.openById(copy.getId());
  var sht1 = newsheet.getSheetByName("Sheet1");//open the default sheet 1 or if you want you can rename the sheet or create a new sheet
  sht1.getRange("A1").setValue(Source); //populate any cell with value captured by the form
  sht1.getRange("B1").setValue(FullName);

}

说明:

我相信您已经知道如何运行上述脚本“On formSubmit”

【讨论】:

  • 非常感谢!看起来你的回答让我达到了我需要的 98%。一项调整是结合@Iamblichus 的建议,将 DocumentApp 更改为 SpreadsheetApp 并繁荣!
  • @JarrettStone 如果您发现答案有用,请。考虑支持它
  • 嗨,我修改了你的答案,以便添加关于代码正在做什么的解释/参考,除了将拼写错误 DocumentApp 修复为 SpreadsheetApp
  • @JarrettStone 如果它解决了您的问题,请考虑accepting this answer
  • 另外,两个值可以同时写入sht1.getRange("A1:B1").setValues([[Source,FullName]]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
相关资源
最近更新 更多