Как записать данные API Google Analytics в новую строку, а не в новую таблицу - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь изменить приведенный ниже скрипт для записи данных 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 Ответ

1 голос
/ 02 апреля 2019
  • Вы хотите поместить значение в новую строку существующего листа в электронной таблице.
  • В таблице есть только один лист.

Если мое понимание верно, как насчет этой модификации? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Модифицированный скрипт:

Пожалуйста, измените 2 части следующим образом.

От:
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());

Ссылки:

Если я неправильно понял ваш вопрос, и это не сработало, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...