此代码按原样工作,但它还会添加空白行-如果有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);
}
}
答案 0 :(得分:0)
我可以理解您想要做的如下。
如果存在“ A3”的值,则要将“ Sheet1”(条目)的“ A3:L”的值移到“ Sheet2”(数据)的最后一行。
如果正确,那么如何修改?
<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
}
}
如果这不是您想要的,请告诉我。我想修改它。