谷歌脚本:通过触发器处理电子表格更新时出现问题

时间:2016-08-06 09:21:40

标签: google-apps-script google-sheets

我有一个谷歌电子表格,可以准备报告并发送电子邮件。当我在浏览器中打开电子表格时,电子表格会使用正确数据(实际上是图表)发送的数据和电子邮件进行更新。 如果我将此代码放在触发器中,则电子邮件包含空图表,因为电子表格没有填充数据。电子表格进行计算并绘制图表。

无论如何要解决这个问题?到目前为止,我已经知道如果我打开电子表格,那么触发器会向我发送包含所需数据的电子邮件,但如果电子表格未打开,则电子邮件中包含空图表。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用getActiveSpreadsheet()和getActiveSheet()从电子表格中获取数据。

这样的事情:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

如果我的假设是真的,那么使用getSheetByName()或getSheets()而不是getActiveSheet()

因为getActiveSheet()仅返回当前活动的电子表格,但是当它从时间驱动的触发器运行时没有活动工作表,并且图形绘制功能无法获取任何数据,因此您需要指明工作表。

该行应如下所示:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");

希望这会对你有所帮助。

感谢。