Google 形成对现有 Google sheet 列的响应并保持现有格式

Google form responses to existing Google sheet columns and maintain existing formatting

我有一个现有的 google form 并且正在寻找:

Image 1. of the google form question.

1) 将表单中的问题(你叫什么名字)的答案自动填充到此现有 [= 上的(Sheet 1,C 列 ) 15=]

Image 2. Where the google form data will have to go

2) 每个 google 表单提交生成的时间戳自动填充 YYYY-MM 中的(Sheet 1,E 列 ) -DD格式。

3) 虽然这些 google 表单回复将记录在此电子表格中,但有时我也必须手动进入并在后续行中输入信息。

这可以吗?我不熟悉将 google 表格中的数据导入 google 工作表,有人可以帮助解决上述问题吗?

好的。一些事情。

  1. 转到工具菜单 > 脚本编辑器
  2. 通过单击编辑器左上角的“无标题项目”文本为脚本命名(也许 'Form Submission'?)。
  3. 用下面的代码替换code.gs中的所有文本。 (更改指定的代码)。
  4. 然后转到编辑 > 当前项目的触发器
  5. 单击显示以下内容的 link:未设置触发器。现在点击这里添加一个。
  6. 在运行下,select onSubmit.
  7. 在事件下,select 在表单提交上
  8. 单击保存
  9. 现在您应该返回编辑器并按下播放按钮。这将 运行 函数并启动授权过程。单击提示并接受。

现在,每次提交表单时,名称和时间戳都会被复制过来。

function onSubmit() {

    var spreadsheet = SpreadsheetApp.getActive();

    var responseSheet = spreadsheet.getSheetByName('Form Responses 1');
    var copyToSheet = spreadsheet.getSheetByName('Target');

    var rLastRow = responseSheet.getLastRow();
    var tLastRow = copyToSheet.getLastRow() + 1;
    var lastCol = responseSheet.getLastColumn();

    var values = responseSheet
        .getRange(rLastRow, 1, 1, lastCol)
        .getValues()[0];

    var timestamp = Utilities.formatDate(new Date(values[0]), Session.getScriptTimeZone(), 'yyyy-MM-dd');

    var name = values[1];

    copyToSheet.getRange('C' + tLastRow).setValue(name);
    copyToSheet.getRange('E' + tLastRow).setValue(timestamp).setNumberFormat('yyyy-MM-dd');
}