我正在尝试从 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,并以更有效的方式执行此操作。