我正在尝试读取外部JSON API,并将解析后的值从其中写入Google工作表。因此,每个API调用都会在工作表中写入新行。第二个要求是仅在该行包含已插入的行以外的内容时才写该行-换句话说,仅当该行唯一时才追加新行。
我已经完成了第一个要求。我已经使用过JSON.parse
和appendRow
了,并且没有问题。
不幸的是,我无法满足第二个要求。我找不到任何结构,也找不到示例解决方案。
有人建议如何仅附加Google Apps脚本中的唯一行吗?
编辑:对于上述不准确的帖子,我表示歉意。这是详细信息。
下面提到的代码是我对第一个要求的解决方案:
function run() {
var data = UrlFetchApp.fetch("https://url/json-api").getContentText();
var json = JSON.parse(data);
var last = (json.last);
var credit = parseInt(json.credit);
var doc = SpreadsheetApp.openById("googleSheetID");
var list = doc.getSheets()[0];
list.appendRow([last, credit]);
}
因此,每次我运行脚本时,它只需追加新行。不幸的是,返回的JSON仅会不时更改。当我安排脚本每5分钟运行一次时,它将导致许多冗余行。
但是,在写入冗余行之后,我不想运行任何不同的命令。我想检查新解析的数据是否唯一,如果是的话,请写入-否则为空。
答案 0 :(得分:1)
getLastRow的值,并检查其是否等于last
/ credit
。然后,如果需要,则appendRow。
脚本示例代码段:
var lastRow=list.getRange(1,list.getLastRow(),1,2).getValues(); //[[prev.last,prev.credit]]
if(lastRow[0][0]!=last && lastRow[0][1]!=credit){
list.appendRow([last, credit]);
}