簡體   English   中英

在Google表格中,使用腳本,如何僅更新從API調用獲得的新記錄?

[英]In Google Sheets, with scripts, how do I only update new records that I get from an API call?

我每天都從外部API到Google表格中獲取數據。 數據按日期排序。 每天大約有20條新記錄。

數據更新后,我想將任何新數據添加為新行。 我在數據中添加了自己的注釋,因此必須有序。 目前,我將數據復制到另一張紙上,然后在其中做筆記。

我遇到的問題是,有時會添加一些新數據,而日期可能在一個月左右。 因此,我總是必須獲取約600條記錄,並且某處的過去日期可能有或沒有新的添加。

我想將此新數據自動添加為工作表中的新行。

因此,我將不得不以某種方式識別新記錄並將其添加為新行。 有人對如何有效地執行此操作有想法嗎?

似乎從API獲得的每條記錄遍歷整個工作表並包含1000行不是一個好主意...

我應該使用數據庫嗎? 還是可以加載所有API數據和所有工作表數據,然后快速將所有新內容添加到工作表數據中?

您可以安裝觸發器,以檢測行是否插入到電子表格中。

這些插入將被捕獲為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
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM