Скрипт возвращает странную ошибку. Может кто-нибудь объяснить? - PullRequest
1 голос
/ 29 марта 2020

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

Вот код, который я использую:

var payData = trackingSheet.getRange('C250:E250').getValues();

     var paycheckHistorySheet = SpreadsheetApp.openById('10kFR2EPO4RYuiJDun0WVO----------y8bEG3R3_Xyc'); // This is the 'Paycheck History Sheet'

     paycheckHistorySheet.appendRow([payData]);

Как вы можете сказать, по приведенному выше коду я пытаюсь импортировать данные из «Листа отслеживания» в последнюю строку в листе «История зарплаты». Однако, когда я запускаю скрипт в «Листе истории зарплат», я получаю сообщение об ошибке «[L java .lang. Object;@6ba282».

Почему это происходит, как я могу предотвратить это, и как я могу это исправить?

1 Ответ

1 голос
/ 30 марта 2020

Проблема

Передача аргумента другого типа, который ожидает метод.

Пояснение

appendRow() принимает Object[], тогда как getValues() возвращает Array из Array из Object. Чтобы передать значения в appendRow(), необходимо извлечь значение по индексу [0] (более общему - по любому индексу, если Range больше, чем строка или целевая строка не первая), без переноса его в другой Array.

Образцы

Вот что getValues() возвращает:

const grid = [
   [ r0c0, ... , r0cN ],
   ...
   [ rMc0, ... , rMcN ]
];

Ссылки

  1. appendRow() метод документы
  2. getValues() метод документы
  3. Вкл. многомерный массив в JavaScript
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...