Сохраняйте данные из одной электронной таблицы Google в другую, чтобы создать базу данных - PullRequest
0 голосов
/ 10 мая 2018

Я новичок в скриптах Google App и JavaScript, так как работаю в области маркетинга. В настоящее время я пытаюсь создать базу данных в Google Sheets для использования в DataStudio, поскольку хочу объединить данные из различных источников.

У меня есть Google Sheets с листом для подачи данных (через надстройки) и другим листом, который я намерен использовать в качестве базы данных. Я пытаюсь сохранить данные в базе данных, каждый раз новые данные сохраняются в конце электронной таблицы (я буду устанавливать временной триггер, когда мой сценарий будет работать). Я написал скрипт, используя документацию Google, но он только копирует первую строку моего листа данных в базу данных. Мне нужно было бы скопировать все содержимое из таблицы данных на лист базы данных.

Вот сценарий, который у меня есть сейчас:

// function to save data
function saveData() {
  // starts with active sheet for data entry
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Data");

  // collects values in data entry row
  var url = sheet.getRange("Data!A1:A").getValues();
  var follower_count = sheet.getRange("Data!B1:B").getValues();
  var date = sheet.getRange("Data!C1:C").getValues();  


  // identifies and adds data to Database
  var data1 = ss.getSheetByName("Database");
  var aVals = data1.getRange("A1:A").getValues();
  var aLastRow = aVals.filter(String).length;

  Logger.log(aLastRow);

  var newAttData = [[url,follower_count,date]];
  Logger.log(newAttData);

  data1.getRange(aLastRow +1,1,1,3).setValues(newAttData);

}

Я пытался изменить ширину и длину диапазона в последней строке, но всегда получаю сообщение об ошибке:

Неправильная высота диапазона, была 1, но должна быть 3 (строка 31, файл "Код")

Я потратил много времени на это, но не могу заставить его работать. Любая помощь будет отличной!

1 Ответ

0 голосов
/ 11 мая 2018

Как описано в документации:

setValues ​​(values) Устанавливает прямоугольную сетку значений (должна соответствовать размерам этого диапазона).

var ss = SpreadsheetApp.getActiveSpreadsheet ();var sheet = ss.getSheets () [0];

// Размер двумерного массива должен соответствовать размеру диапазона.значения var = [["2.000", "1,000,000", "$ 2,99"]];

var range = sheet.getRange ("B2: D2");range.setValues ​​(значения);

Ссылка

...