Javascript 当外部源(firebase)更改单元格时,如何在google工作表中触发google应用程序脚本?
我试图触发一个绑定到谷歌工作表的谷歌应用程序脚本 来自firebase的数据被拉入一个表中,该表将触发脚本。我目前正在使用onEdit(e),当我手动添加数据时,它可以工作,但当数据从firebase更新时,它就不工作了。是否有任何方法可以设置触发器,以便在每次更改特定范围内的单元格值时运行函数 谢谢 剧本 从应用程序脚本: 脚本执行和API请求不会导致触发器运行。例如,调用Range.setValue()编辑单元格不会导致电子表格的OneEdit触发器运行 我认为最好的方法是创建一个新的,并检查指定范围内的更改。当然,我不能确定这是否对你的目的有用,但值得一试 以下是一些需要考虑的备选方案:Javascript 当外部源(firebase)更改单元格时,如何在google工作表中触发google应用程序脚本?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图触发一个绑定到谷歌工作表的谷歌应用程序脚本 来自firebase的数据被拉入一个表中,该表将触发脚本。我目前正在使用onEdit(e),当我手动添加数据时,它可以工作,但当数据从firebase更新时,它就不工作了。是否有任何方法可以设置触发器,以便在每次更改特定范围内的单元格值时运行函数 谢谢 剧本 从应用程序脚本: 脚本执行和API请求不会导致触发器运行。例如,调用Range.setValue()编辑单元格不会导致电子表格的OneEdit触发器运行 我认为最好的方法是创建一个新的,并检
- 如果数据拉取是由脚本启动的,那么只需让该函数完成所需的操作即可
- 如果有单独的服务填充数据,则可以使用Sheets API
- 您可以通过GET或POST将脚本发布为and触发器
- 您可以尝试使用执行函数。请检查这样做的要求,因为它可能不符合您的要求
- 如果数据拉取是由脚本启动的,那么只需让该函数完成所需的操作即可
- 如果有单独的服务填充数据,则可以使用Sheets API
- 您可以通过GET或POST将脚本发布为and触发器
- 您可以尝试使用执行函数。请检查这样做的要求,因为它可能不符合您的要求
onChange()
。检查是否触发了onChange()
。其中,对类似webapp的端点的GET/POST最为明确。其中,一个类似webapp的端点的GET/POST是最清晰的。IMCO
function onEdit(e) {
var ss = SpreadsheetApp.getActive()
var dumpingGround = ss.getSheetByName("Dumping Ground")
var dataDump = ss.getSheetByName("Data Dump")
var ddLastRow = dataDump.getLastRow() + 1
var editCol = e.range.getColumn();
var editRow = e.range.getRow();
Logger.log("edit")
/*Copy from dumping ground to data dump*/
if ((editRow == 1 && editCol == 2) || (editRow == 1 && editCol == 3)){
/*Set required range for data dump and dumping ground*/
var ddRange = '\'Data Dump\'!A' +ddLastRow+ ':BF' + ddLastRow
var dgCopyRange = '\'Dumping Ground\'!B1:BF1'
/*Copy action*/
ss.getRange('\'Dumping Ground\'!B1:BF1').copyTo(ss.getRange(ddRange), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
/*Check data dump row count and delete 1000 rows if necessary*/
if(ddLastRow = 9999){
dataDump.deleteRows(1, 1000);
}
}
};