如何解决为什么我得到的最后一行有零我无法将其删除如果我执行lastRow-1,则会收到错误消息
function addRowTotal() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("sheet4");
var lastRow=sheet.getLastRow();
var data = sheet.getRange(2,1,lastRow,3).getValues();
var totalsArray=[];
data.forEach(function(row){
var name= row[0];
var price= row[1];
var qty = row[2];
var tot=price*qty;
var doz=price*12;
row.push(tot,doz);
//Logger.log (data);
totalsArray.push([tot,doz]);
Logger.log(totalsArray);
})
sheet.getRange(2,4,2).setValues(totalsArray);
}
问题:为什么我得到的最后一行有零。我无法将其删除。如果我执行lastRow-1,则会收到错误消息。
解决方法
说明:
var data
得到一个额外的空白行。具有4个参数的getRange()函数的定义如下:getRange(row,column,numRows,numColumns)
。在此示例中,sheet.getLastRow()
为 5 ,并且您要从 2 行开始,因此
getRange(2,1,5,3)
。这将返回从 2 行开始并考虑 5 行的范围:2nd,3rd,4th,5th,6th
。但是第六行是空白。为了将此纳入考虑范围,您应该像这样从getLastRow()
中扣除一行:lastRow=sheet.getLastRow()-1
。
解决方案:
function addRowTotal() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("sheet4");
var lastRow=sheet.getLastRow()-1;
var data = sheet.getRange(2,lastRow,3).getValues();
var totalsArray=[];
data.forEach(function(row){
var name= row[0];
var price= row[1];
var qty = row[2];
var tot=price*qty;
var doz=price*12;
row.push(tot,doz);
totalsArray.push([tot,doz]);
})
sheet.getRange(2,4,2).setValues(totalsArray);
}
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。