Перебирая ячейки в листе и загружая его в другой - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь использовать appscript для циклического прохождения и преобразования набора данных. После этого загрузите на другой лист.

В настоящее время найдены только решения для цикла по строке и копирования по диапазону. (код не мой)

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var lines =  SpreadsheetApp.openById("SHEET ID");
//
//
var sheet = lines.getSheetByName("Main")
var linevalues = sheet.getRange("A:F").getValues();
var lastrow=sheet.getLastRow();

Если первый лист имеет кадр данных:

[apple, 2]
[orange, 3]

Он должен добавить к новому листу:

[apple, 1]
[apple, 2]
[orange, 1]
[orange, 2]
[orange, 3]

1 Ответ

1 голос
/ 04 ноября 2019

Если я правильно понял ваш вопрос, используя следующий код:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("Main");
  var resultSheet = ss.getSheetByName("Result");
  var linevalues = mainSheet.getDataRange().getValues();

  var results = [];
  for (var i=0; i<linevalues.length; i++) {
    var row = linevalues[i];
    for (var j=1; j<=row[1]; j++) {
      results.push([row[0], j]);
    }
  }
  resultSheet.getRange(1, 1, results.length, results[0].length).setValues(results);
}

Вы должны получить следующие результаты:

  • До (Лист "Основной")

before main sheet

  • После (Лист "Результат")

after result sheet

Обратите внимание, что для получения этих результатов вам понадобится электронная таблица с двумя листами, соответствующими именам, указанным выше. Если у вас есть какие-либо вопросы по поводу кода, пожалуйста, не стесняйтесь спрашивать.

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