遍历工作表中的单元格并将其加载到另一个

时间:2019-11-01 14:38:20

标签: google-apps-script

我正在尝试使用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 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,请使用以下代码:

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);
}

您应该获得以下结果:

  • 之前(表“ Main”)

before main sheet

  • 之后(显示“结果”)

after result sheet

请注意,为了获得这些结果,您将需要一个包含两个表格的电子表格,它们与上面的名称匹配。如果您对代码有任何疑问,请随时回复。