如何将Google Analytics(分析)API数据写入新行而不是新工作表

时间:2019-04-01 21:31:13

标签: google-apps-script google-sheets

我正在尝试更改以下脚本,以将Google Analytics(分析)数据写入到现有工作表(Google工作表中的唯一工作表)的新行中,但没有成功。我是Google Apps脚本的新手,因此非常感谢您的帮助。

我尝试替换“ var sheet = SpreadsheetApp.getActiveSpreadsheet()。insertSheet();”与“ var sheet = SpreadsheetApp.getActiveSpreadsheet()。appendRow();”,但出现错误。

function outputToSpreadsheet(results) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();

  // Print the headers.
  var headerNames = [];
  for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
    headerNames.push(header.getName());
  }
  sheet.getRange(1, 1, 1, headerNames.length)
      .setValues([headerNames]);

  // Print the rows of data.
  sheet.getRange(2, 1, results.getRows().length, headerNames.length)
      .setValues(results.getRows());
}

1 个答案:

答案 0 :(得分:1)

  • 您要将值放在电子表格中现有工作表的新行中。
  • 电子表格中只有一张纸。

如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一。

修改后的脚本:

请修改以下两个部分。

从:
var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();
至:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

从:
sheet.getRange(2, 1, results.getRows().length, headerNames.length)
    .setValues(results.getRows());
至:
sheet.getRange(sheet.getLastRow() + 1, 1, results.getRows().length, headerNames.length)
    .setValues(results.getRows());

参考文献:

如果我误解了你的问题,但是这没有用,我表示歉意。