我每天都会从外部API获取数据到Google表格。数据按日期排序。每天大约有20条新记录。
当数据更新时,我想将任何新数据添加为新行。我将自己的注释添加到数据中,因此必须按顺序排列。目前我将数据复制到另一张表,然后在那里做笔记。
我遇到的问题是,有时会添加新数据,其中日期可能是一个月左右。因此,我总是需要获取大约600条记录,并且可能会或可能不会在过去的某个日期添加新的内容。
我想将这些新数据自动添加为工作表中的新行。
所以,我必须以某种方式识别新记录并将它们添加为新行。有人想过如何有效地做到这一点吗?
对于我从API获得的每条记录来说,循环遍历整个工作表并不是一个好主意...
我应该使用数据库吗?或者我可以加载所有API数据和所有工作表数据,并快速添加新的工作表数据吗?
答案 0 :(得分:0)
您可以安装一个触发器来检测电子表格中的行插入。
这些插入将被捕获为onChange()事件。
function installTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('onChange')
.forSpreadsheet(ss)
.onChange()
.create();
}
function onChange(x) {
if (x.changeType == "INSERT_ROW") {
var r = SpreadsheetApp.getActiveRange().getRow();
Logger.log(r);
//Do something with row r
//If multiple rows can be inserted at once, you might need to check the height of the range
}
}