将数组数据的 setValues() 拆分为两组列(例如 B - H 和 AV - AX) - Google 电子表格



我有一个 for 循环,它构建了一个大小为 n 行 x 10 列的数据数组。

var dupRows = crossoverDuplicates.getDataRange();        
var dupNumRows = dupRows.getNumRows();
var dupValues = dupRows.getValues();
var retreiveNotFound = [];
for (var c = 1; c < dupNumRows; c++) { 
  var dupRow = dupValues[c];
  if (dupRow[10] == "") {                                
    retreiveNotFound.push(dupValues[c]);
  }
}

然后我使用 setValues(( 将数组粘贴到另一个工作表的底部。

if (retreiveNotFound && retreiveNotFound.length) {
  crossover.getRange(lastRowCrossoverData + 1, 2,
    retreiveNotFound.length,10 ).setValues(retreiveNotFound);
}

但是,目标工作表上的列现在已经移动,我需要将数组的前 7 列粘贴到 B - H 中,将后 3 列粘贴到 AV - AX 中。

或者,我可以创建两个数组,一个包含前 7 列,另一个包含后 3 列,然后分别粘贴。

不幸的是,我也不知道该怎么做。

我猜这有一个相对简单的解决方案,但我只是没有搜索正确的关键字。 提前感谢您的帮助!

将 Google 电子表格列移到两个单独的位置。 将Google电子表格列拆分为不同的列或两个不同的列。 此代码从一个位置获取数据,然后创建两个单独的数组,并将数据写入两个不连续的范围。

function myFunction() {
  var dupRows = crossoverDuplicates.getDataRange();        
  var dupNumRows = dupRows.getNumRows();
  var dupValues = dupRows.getValues();
  var B_H_Array = [];
  var AV_AX_Array = [];
  var AV_AX_TempArray, B_X_TempArray, c, dupRow, thisRowsData;//Define variables
    //without assigning a value
  for (c = 1; c < dupNumRows; c++) { 
    dupRow = dupValues[c];
    if (dupRow[10] == "") {
      thisRowsData = dupValues[c];
      B_X_TempArray = thisRowsData.slice(0,7);//Slice out the first elements
      AV_AX_TempArray = thisRowsData.slice(7,10);//Slice out last elements
      B_H_Array.push(B_X_TempArray);
      AV_AX_Array.push(AV_AX_TempArray);
    }
  }
  if (B_H_Array.length) {
    crossover.getRange(lastRowCrossoverData + 1, 2,B_H_Array.length, B_H_Array[0].length )
      .setValues(B_H_Array);
  }
  if (AV_AX_Array.length) {
    crossover
      .getRange(lastRowCrossoverData + 1, 48,AV_AX_Array.length, AV_AX_Array[0].length )
      .setValues(AV_AX_Array);
  }
}

相关内容

  • 没有找到相关文章

最新更新