我正在尝试从Google表格中的JSON数组中提取一些信息,并吸收该信息的一部分,并将其复制到旁边的两列中。
我想要的数据在工作表的L列(从第2行开始)中,格式为:
[{"id": "XX:123456", "timestamp": "2020-01-27T19:25:51.303"}, {"id": "XX:654321", "timestamp": "2020-01-27T19:40:37.06"}]
当前我的脚本如下:
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("parsed");
var dataRange = sheet.getDataRange();
var lastRow = dataRange.getLastRow();
function parseData() {
for (var row=2; row<lastRow; row++)
{
var parseRange = sheet.getRange(row,12,5,1)
var json = JSON.parse(parseRange.getValue());
var lastObject = json.length-1;
var org = json[lastObject];
var orgID = org.id;
var timestamp = org.timestamp;
sheet.getRange(row, 13).setValue(orgID);
sheet.getRange(row, 14).setValue(timestamp);
}
}
这非常耗时,因为它是逐行读取和写入每一行。我以为JSON数组已经按顺序排列,但是检查它似乎是随机的。我理想地想做的是先按时间戳对数组进行排序,然后将具有最新时间戳的对象作为对象,然后将数据写入M和N列,并以更有效的方式进行操作。