Ошибка Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues при выводе двумерного массива

Рейтинг: 0Ответов: 1Опубликовано: 18.04.2023

Пишу скрипт, который в таблице заменяет пустые строки на значения, которые находятся в той же колонке выше. Сам массив выводится верно в log, но когда вывожу его обратно в таблицу мне выводит только нулевой элемент. Если я заменяю на setValues(arrstr), то возникает ошибка

Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues.

Хотя в лог выводится двумерный массив. Не понимаю в чем ошибка. Как сделать так, чтобы выводились все значения из массива в колонку таблицы? Вот сам код.

function SomeFun() {
  var app = SpreadsheetApp;
  var ss_1 = app.openByUrl("https://docs.google.com/spreadsheets/d/1iL6vkUkPfdezZz13j0M-zwISCWgRGTHLASsHW0zmHRU/edit#gid=2098900037");
  var list_7 = ss_1.getSheetByName("Processing");
  var lr = list_7.getLastRow();
  let arrstr = [];
  let arrnum = [];
  for(i = 2; i< lr; i++){
    var elem = list_7.getRange(i,1).getValue();
    if(typeof elem == 'string'){
     arrstr.push(elem); 
    }
  }  
  for(let j = 0; j<arrstr.length; j++){
    if(arrstr[j] == ""){arrstr[j] = arrstr[j-1]}; 
  }
  Logger.log(arrstr);
  list_7.getRange(2,10,arrstr.length,1).setValues(arrstr);
} 

Ответы

▲ 0

Извиняюсь, ошибка с оказалась в все же одномерности списка. Мне требовалось выводить текстовые значения типа [Ca(SO3)]. Эти скобки я принял за скобки массива - отсюда ошибка. Чтобы ее исправить необходимо записать arrstr.push([elem]). Тогда получаем двумерный массив и все работает.