以编程方式复制对两个 Google 表格的响应

Duplicate Form responses to two Google Sheets programmatically

我需要在两个不同的 sheet 中保存我的 Google 表格。

第一个 sheet 将用于历史,另一个将被物流服务利用(当客户收到发货的东西时,物流服务可能会删除一些行)。

我真的需要在第一个 sheet 保留所有回复,无论后勤服务在第二个做什么。

事实是;我正在使用 formRat,但不再工作了,而且我没有看到任何互补模块可以做完全相同的事情。自己编程不行,没法自己写脚本

我试着在第二个写这个sheet:

=ArrayFormula('first_sheet_name'!A:W)

但是当我尝试在第二个 sheet 上删除一行时,它会在几秒钟后重新出现,因为 Google Sheets 会重新计算它。

附加到表单响应传播的表单提交触发脚本sheet 可以在响应到达时轻松地将响应复制到第二个 sheet。在第二个 sheet 之后所做的任何修改都将保留。

这是一个非常简单的例子 Installable Trigger Function。您需要使用 spreadsheet 的 Sheet ID 声明 ss2ID 2. 脚本假定响应将被复制到 spread[=21= 中的第一个 sheet ] 2,并且所有表单答案都已填充。

function copyResponse( event ) {
  fixFormEvent( event );  // From 
  var ss2Id = "---sheet-id---";
  var sheet2 = SpreadsheetApp.openById( secondSheetId ).getSheets()[0];
  sheet2.appendRow( [event.values] );
}

此函数使用 e.values in google forms skips empty answers, is there a workaround? 中的 fixFormEvent( event ) 以确保新 sheet 中的列与原始问题对齐。