从单元格读取JSON数组,并将最后一个对象的一部分写入同一行中的另一个单元格

问题描述 投票:1回答:1

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

google-apps-script google-sheets
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.