如何将数据插入特定的行号(或第一个空行)?

Dre*_*vid 5 google-sheets google-apps-script

我正在使用这个超级方便的脚本将Google PageSpeed Insights指标纳入Google电子表格(感谢作者):

var pageSpeedApiKey = 'AIzaSyDRgiUgu9Y3xVur0Xf0TdUmxgOYfltLFW4';
var pageSpeedMonitorUrl = 'http://www.sauder.ubc.ca';

function monitor() {
  var mobile = callPageSpeed('mobile');
  var desktop = callPageSpeed('desktop');
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName('GooglePageSpeedInsightsData');
  sheet.appendRow([
                   Utilities.formatDate(new Date(), 'GMT', 'yyyy-MM-dd'),
                   mobile.score,
                   desktop.score
                  ]);

    // more available, i.e. desktop.pageStats.numberResources
}

function callPageSpeed(strategy) {
  var pageSpeedUrl = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=' + pageSpeedMonitorUrl + '&key=' + pageSpeedApiKey + '&strategy=' + strategy;
  var response = UrlFetchApp.fetch(pageSpeedUrl);
  var json = response.getContentText();
  return JSON.parse(json);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用另一个脚本,在第3行的第三行中添加一个空行,以便在新数据进入时按时间顺序保持所有数据.

因此,我需要将其插入"第3行"或"第一个空行",而不是追加到最后一行!

Ala*_*lls 7

您可以在第3行插入新行,然后获取第3行的范围并设置值:

sheet.insertRows(3, 1);//shift all rows down by one from row 3

sheet.getRange(3,1,1,3)//(start row, start column, number of rows, number of columns
   .setValues([[
               Utilities.formatDate(new Date(), 'GMT', 'yyyy-MM-dd'),
               mobile.score,
               desktop.score
              ]]);
Run Code Online (Sandbox Code Playgroud)

用于insertRows()的Apps脚本文档

  • 谢谢,但这只是单行,但仍然是两个操作。我希望的是像追加这样的单一(原子)操作。 (3认同)