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

时间:2017-02-24 23:13:21

标签: google-apps-script google-sheets

我正在使用this super-handy 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);
}

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

所以我不需要将追加添加到最后一行,而是需要将其插入“第3行”或“第一个空行”!

1 个答案:

答案 0 :(得分: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
              ]]);

Apps Script Documentation for insertRows()