当前位置: 首页 > 知识库问答 >
问题:

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

闻鹤龄
2023-03-14

我试图设置动态getRange函数,所以我使用getRange(行、列、numRows、numColumns)函数,我的示例如下所示:

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

结果为ex.sheet.getRange(7,11200,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个答案

方心思
2023-03-14

问题在于,在JavaScript/Google应用程序脚本中,数组索引基于0(零),行/列索引基于1(一)。换句话说,包含七个元素的数组的长度是七,但最后一个元素的索引是六。

 类似资料:
  • 我在为一些不寻常的事情挣扎。。。 我正在做一个谷歌电子表格,有很多表格,它们的名字是MM/YYYY,我需要获取A1:B100范围内的所有数据,然后用这些数据在主数据表上进行查询,问题是,我用javascript做了一个函数来获取这些表格的范围,但我不能在=QUERY()上使用它们功能,尝试了很多,用不同的方法从互联网上,但没有成功。。 我的电子表格示例: https://docs.google.c

  • 我有一个静态网站的形式,我托管在netlify。使用netlify to sheets zap,当表单提交到站点上时,数据会按预期在我的工作表中显示为一行。 在插入后添加最后一行。我想做一些应用程序脚本后处理,我使用onchange事件触发它。在进行后期处理之前,我希望填写一些表单未提交的空白单元格,例如日期字段和合计字段。它将price单元格移到左边,并添加1500。 我最初想用一个公式: 把这

  • 问题内容: 我只想计算已经使用php在数据库中创建的表中的行数。我使用了mysqli()。我需要表中的行数作为输出。 问题答案: 实际上,这是一个常见问题,您可以在任何地方找到答案。 就像http://php.net/manual/en/mysqli-result.num- rows.php 您可以将这个问题分为两个 我想知道如何连接到mysql。 我想知道如何编写该sql指令。

  • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

  • 我有一个谷歌电子表格,里面有多张表格,我想把每一张表格复制到一个新的电子表格中,并在一个特定的单元格中以文本命名新的电子表格。我很高兴运行脚本多次,所以我想让它复制活动表。 即。我所拥有的=称为“颜色”的电子表格——工作表1=“红色”,工作表2=“蓝色”,工作表3=“黄色”,等等。 我想要什么= 名为“红色”的电子表格。电子表格叫做"蓝色",电子表格叫做"黄色" 到目前为止,我有这个脚本,但它告诉

  • 我有一个谷歌电子表格,其中有一列如下所示: 我想计算每个不同城市的外观(因此我需要城市名称和外观数量)。 我该怎么做呢?