跳过先前输入的数据,并在特定行上方添加行

时间:2018-08-16 11:24:57

标签: javascript google-apps-script

我需要将数据从两张纸移到一张单独的纸上。只要工作表的布局如下,我的代码即可工作:enter image description here

但是,工作表必须这样布置: enter image description here

我需要在包含Amount Total的行上方但在包含标题的第一行下方插入数据。我认为可以通过使用脚本在Amount Total上方添加行来实现这一点,但是我当前的代码使用getLastRow()跳过导出工作表中的现有数据。如第二张图片所示放置Amount Total时,此功能不起作用。我该如何实现?我现有的代码如下:

function exportData() {

  var ards = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Newtownards");
  var bangor = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bangor");
  var export = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Export");
  var lastRow = export.getLastRow();
  var nextCell = lastRow + 1;

  //get values for export
   var ardsRefValues = ards.getRange("B12:G12").getValues();
   var ardsAmountValues = ards.getRange("B13:G13").getValues();

   var bangorRefValues = bangor.getRange("B12:G12").getValues();
   var bangorAmountValues = bangor.getRange("B13:G13").getValues();

  for(var i = 0; i<=6; i++){

    var a = ardsRefValues.join().split(',').filter(Boolean);
    var b = ardsAmountValues.join().split(',').filter(Boolean);

    var c = bangorRefValues.join().split(',').filter(Boolean);
    var d = bangorAmountValues.join().split(',').filter(Boolean);


  }//close for loop

  //find length of the arrays
  var aLength = a.length - 1;
  var cLength = c.length - 1;

  //loop through ards data arrays
  for(i = 0; i<=aLength; i++){
     export.getRange(nextCell, 5).setValue(a[i]);
     export.getRange(nextCell, 4).setValue(b[i]);
     nextCell++
      }//close for loop

  //loop through bangor data arrays
  for(i = 0; i<=cLength; i++){
     export.getRange(nextCell, 5).setValue(c[i]);
     export.getRange(nextCell, 4).setValue(d[i]);
     nextCell++
      }//close for loop

  var data = new Array();
  var lastRow = export.getLastRow();
  var total = 0;

  for(var i = 2; i<=lastRow; i++){
    var range = export.getRange(i, 4);
    data = range.getValue();
    total += data;
  }
  export.getRange(2, 7).setValue(total);
}//close function

更新:好消息是,这些工作表每周都会更新。因此,必须将总金额添加到数据最后一行的正下方

0 个答案:

没有答案