计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去

Posted

技术标签:

【中文标题】计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去【英文标题】:Count number of rows in sheet then subtract on a Google spreadsheet with Google Apps Script 【发布时间】:2017-06-04 08:29:50 【问题描述】:

我正在尝试设置动态 getRange 函数,所以我使用 getRange(row, column, numRows, numColumns) 函数,我的示例如下所示:

var range = sheet.getRange(7,11,sheet.getLastRow(),sheet.getLastColumn());

结果是 ex。 sheet.getRange(7,11,200,30);

但是当我想使用这个范围时,例如,将一些数据放到工作表中,函数不使用起点(startRow - 7,startColumn - 11)。所以我尝试从 getLastRow() 和 getLastColumn() 中减去它,它可以工作,但给了我十进制数(例如 lastRow = 193.0)并且函数被粉碎了

function myFunction() 
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Arkusz1');
  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn() - 2;
  var lastColumnParse = parseInt(lastColumn, 10);
  var range = sheet.getRange(1,1,lastRow, lastColumn);
  var formatting = range.getBackgrounds();
  var data = range.getValues();

  for(var y = 1; y < data.length; ++y)
    var message = '';

    for(var x = 0; x < data[y].length; x++)

      if(formatting[y][x] == '#ffff00')
        var header = data[0][x];
        message += ' ' + header + ' - ' + data[y][x] + ' zł, ' + lastRow + ' ' + lastColumn;  
      ;

      data[y][lastColumn] = message
    
  

  range.setValues(data);

错误信息是:

消息说范围不正确。输入 7 但应该是 6。

在控制台中,我们可以看到,x = 7.0,而不是 6。

我找不到错误。请帮帮我。

【问题讨论】:

【参考方案1】:

问题在于,在 javascript/Google Apps 脚本中,数组索引是基于 0(零)的,而行/列索引是基于 1(一)的。换句话说,一个有 7 个元素的数组的长度是 7,但最后一个元素的索引是 6。

【讨论】:

以上是关于计算工作表中的行数,然后使用 Google Apps 脚本在 Google 电子表格上减去的主要内容,如果未能解决你的问题,请参考以下文章

计算另一张工作表中的行数并应用公式

如何使用 PHP 获取 MySQL 表中的行数?

jQuery:计算表中的行数

如何加快计算 PostgreSQL 表中的行数?

php 计算表中的行数

根据另一个表中的条件计算表中的行数