使用Google表格,将数据从一个电子表格移到最后一行之后的另一电子表格

时间:2018-07-02 21:17:38

标签: google-apps-script google-sheets

此代码按原样工作,但它还会添加空白行-如果有4行包含数据和4个空白行,则在将数据复制到新工作表后,脚本会添加4个空白行。

我需要它仅复制包含数据的行,而不在新工作表上添加空白行。

    function saveToData() {
       var ss, s, r, v, target,ts,tss;
       ss = SpreadsheetApp.getActive();
       s = ss.getSheetByName('Entry');
    if (s.getRange(3, 1).getValue()) {
       r = s.getDataRange()
        .offset(2, 0, s.getLastRow()-1,12);
       v = r.getValues();
       r.clear()
     tts = SpreadsheetApp.openById('10_XEaQiR71QN_90nIIIvDAU6un1KuOhi9-- 
     AVVtk5FI'); destination ID
     ts = tts.getSheetByName('Data');destination  Sheet 
     tab name
    ts.getLastRow()+1
    .setValues(v);



  }


 }  

1 个答案:

答案 0 :(得分:0)

我可以理解您想要做的如下。

  

如果存在“ A3”的值,则要将“ Sheet1”(条目)的“ A3:L”的值移到“ Sheet2”(数据)的最后一行。

如果正确,那么如何修改?

修改点:

  • 将“ A3:L”用作检索值的范围。
  • 从“ A3:L”的值中删除了空行。
  • 使用 <div class="panel-body"> <table class="table table-bordered"> <colgroup> <col class="unique-id"> </colgroup> <thead> <tr> <th class="unique-id">Name #</th> <th contenteditable="true" ng-repeat="c in targetTable.columns" ng-model="c.label"></th> <!--<th class="view-next-set"><a href="#">...</a></th>--> <td class="center add-column"><a href ng-click="open()">+ Add Column</a></td> </tr> </thead> <tbody> <tr ng-repeat="r in targetTable.rows"> <td contenteditable="true" class=""></td> <td contenteditable="true" ng-repeat="column in targetTable.columns" ng-model="r[column.id]" ng-blur="!r.id? addNewRow(r[column.id], r): undefined"></td> <!--<td class="blank" colspan="2"></td>--> </tr> </tbody> </table> </div> 将值放入“数据”表。

修改后的脚本:

setValues()

其他模式:

您也可以使用此脚本。

function saveToData() {
  var ss, s, r, v, target,ts,tss;
  ss = SpreadsheetApp.getActive();
  s = ss.getSheetByName('Entry');
  if (s.getRange(3, 1).getValue()) {
    r = s.getRange("A3:L"); // Modified
    v = r.getValues().filter(function(e){return e.filter(String).length > 0}); // Modified
    r.clear();
    tts = SpreadsheetApp.openById('10_XEaQiR71QN_90nIIIvDAU6un1KuOhi9--AVVtk5FI'); // destination ID
    ts = tts.getSheetByName('Data'); // destination Sheet tab name
    ts.getRange(ts.getLastRow()+1, 1, v.length, v[0].length).setValues(v); // Modified
  }
}

注意:

  • 此脚本修改了您的脚本。因此,请注意工作表ID和工作表名称。

参考:

如果这不是您想要的,请告诉我。我想修改它。