Google Sheets API不能在Google Sheets上触发onEdit函数。

5

我正在使用PHP将数据写入Google表格。然而,当数据从PHP中写入时,Google表格上的触发器onEdit函数没有被触发。

以下是我用来记录数据的代码片段:

$body = new Google_Service_Sheets_ValueRange(array('values' => $resultArrayGen));
$params = array('valueInputOption' => $valueInputOption);
$range = 'Main!F2:K';
$result = $service->spreadsheets_values->update($spreadsheetId, $range, $body, $params);

有没有办法使用Google Sheets API来触发Google电子表格中的onEdit函数?谢谢。

1
No.Simple触发器仅响应用户输入。我认为可安装的onChange可以做类似于所需检查文档的操作。 - Cooper
1
另一个可能的解决方案是使用内置的表格触发器,并每分钟运行一次以查找更改。我的做法是使用跟踪列。我有一列函数从末尾开始查找,以找到最后输入数据的时间点。一旦代码获得了该行号,它就开始迭代新数据。同时,新的数据行会附加一个跟踪标记。 - Jason Allshorn
2个回答

2

根据谷歌的文档,onEdit触发器不会触发:

脚本执行和API请求不会导致触发器运行。例如,调用Range.setValue()编辑单元格不会使电子表格的onEdit触发器运行。

您可以在此处找到文档。

最初的回答: 根据谷歌的文档, 使用 setValue() 方法修改单元格并不能引起 onEdit 触发器运行。您可以在这里找到更多信息。


0
我发现,如果通过另一个API获取信息,那么在设定的时间或以分钟为间隔运行脚本是获取信息的唯一方法。例如,我有一个表单,它没有时间戳功能,但允许我设置一个隐藏字段,将单元格中的词“时间戳”替换为日期。因此,我设置脚本每隔5分钟运行一次,并使用文本查找器。当它看到“时间戳”这个词时,它会用脚本运行的时间和日期替换它。这对我很有帮助-虽然不同于使用Google表单,但我们更喜欢新用户门户上的表单,所以我们会坚持使用它。
希望这有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接