Google apps script 为什么我得到的最后一行中有零。I';我没办法把它们拿走。如果我做最后一行,我会得到一个错误
问题:为什么最后一行是零。我无法移除它们。如果执行最后一行-1,则会出现错误。说明:Google apps script 为什么我得到的最后一行中有零。I';我没办法把它们拿走。如果我做最后一行,我会得到一个错误,google-apps-script,google-sheets,Google Apps Script,Google Sheets,问题:为什么最后一行是零。我无法移除它们。如果执行最后一行-1,则会出现错误。说明: var数据获取额外的空行。具有4个参数的函数的定义如下:getRange(行、列、numRows、numColumns)。在本例中,sheet.getLastRow()是5,因此您希望从第2行开始 getRange(2,1,5,3)。这将返回一个从第2行开始并考虑第5行的范围:2、3、4、5、6。但是第六行是空白的。为了将此因素考虑在内,您应该从getLastRow()中扣除一行,如下所示:lastRow=sh
var数据
获取额外的空行。具有4个参数的函数的定义如下:getRange(行、列、numRows、numColumns)
。在本例中,sheet.getLastRow()
是5,因此您希望从第2行开始
getRange(2,1,5,3)
。这将返回一个从第2行开始并考虑第5行的范围:2、3、4、5、6。但是第六行是空白的。为了将此因素考虑在内,您应该从getLastRow()
中扣除一行,如下所示:lastRow=sheet.getLastRow()-1
解决方案:
输出:
在脚本中,位于var data=sheet.getRange(2,1,lastRow,3).getValues()代码>,检索最后一行的下一行,因为该值是从第二行检索的。如果您不想在列“D”和“E”中包含具有0
的行,那么如何修改为var data=sheet.getRange(2,1,lastRow-2,3).getValues()
以及从sheet.getRange(2,4,lastRow,2).setValues(totalsArray)
到sheet.getRange(2,4,lastRow-2,2).setValues(totalsArray)
?但我无法理解你的目标。所以我把它作为评论发布。@Blackhart15很高兴它有帮助:)
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,lastRow,2).setValues(totalsArray);
}
function addRowTotal() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("sheet4");
var lastRow=sheet.getLastRow()-1;
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);
totalsArray.push([tot,doz]);
})
sheet.getRange(2,4,lastRow,2).setValues(totalsArray);
}