首页 > 解决方案 > Google 表格 - 重新格式化表单提交日期

问题描述

问题

我有一个 Google 表单,可以正确地将数据记录到 Google 表格中。但是,登录到 Google Sheet 时的日期格式是DD/MM/YYYY

期望的结果

每当提交新表单时将日期格式化为MM/DD/YYYY(因此每当创建新行时)。

到目前为止我所拥有的

记录日期的工作表格

在此处输入图像描述

可以在表单触发时运行脚本。到目前为止,我的应用程序脚本如下:

代码.gs

function respondToFormSubmit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // Format column I
  var column = sheet.getRange("B:B");

  // Set new date format on column I
  column.setNumberFormat('mm/dd/yyyy');
};

我得到的当前错误

TypeError: Cannot call method "getSheets" of null.

我不确定为什么它null作为当前脚本返回正确链接到 Google 表单。

在提交新表单时,如果 B 列的日期格式为MM/DD/YYYY,我怎样才能达到我想要的结果?

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


这是答案:

我不确定为什么它返回 null 因为当前脚本正确链接到 Google 表单。

如果您的脚本链接到 Google 表单,则“getActiveSpreadsheet()”方法将不起作用。该脚本必须绑定到 Google 电子表格才能执行此方法。对于表单绑定脚本,请使用以下代码:

var ssId = form.getDestinationId();
var ss = SpreadsheetApp.openById(ssId);

此外,每次提交新表单条目时设置数字格式是多余的,您可以简单地选择整个 B:B 范围,转到格式 -> 数字 -> 自定义数字格式并输入 dd/mm/yyyy。每个新的表单提交都会被自动格式化。


推荐阅读