Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用不同长度的多个导入_Arrays_Google Apps Script_Google Sheets_Importrange - Fatal编程技术网

Arrays 使用不同长度的多个导入

Arrays 使用不同长度的多个导入,arrays,google-apps-script,google-sheets,importrange,Arrays,Google Apps Script,Google Sheets,Importrange,我是新的编码,但我正在尝试做一些对我来说很难的事情 我有大约50个spreedsheet,我想从每个spreedsheet导入一些数据。我成功地使用while自动导入数据,问题是,每个电子表格都有自己的长度,都从单元格A20开始,一直到第T列,但最后一个数字不同。我使用了一个固定的数字(250),但它会在数据之间创建空白行 是否可以对范围选择进行个性化设置,以避免数据之间出现空白?或者有一些代码来删除数据之间的空行 我的代码到目前为止 function funil_usando_FOR () {

我是新的编码,但我正在尝试做一些对我来说很难的事情

我有大约50个spreedsheet,我想从每个spreedsheet导入一些数据。我成功地使用while自动导入数据,问题是,每个电子表格都有自己的长度,都从单元格A20开始,一直到第T列,但最后一个数字不同。我使用了一个固定的数字(250),但它会在数据之间创建空白行

是否可以对范围选择进行个性化设置,以避免数据之间出现空白?或者有一些代码来删除数据之间的空行

我的代码到目前为止

function funil_usando_FOR () {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A3').activate();

  i = 3
  while (true) {
    var range = spreadsheet.getRange("Z" + i);
    var value = range.getValue();

    if(value == "") {
      break;
    }

    spreadsheet.getCurrentCell().setFormula('=importrange("'+value+'", "NOVO FUNIL!A20:T250")');
    spreadsheet.getCurrentCell().offset(251, 0).activate();
    i++;
  }  
}
答复: 有多种方法可以让您获取Google工作表中数据所在的最后一行

方法:
  • 方法1:
最简单的方法可能是使用
Sheet
类的
getDataRange()
方法。这将返回一个范围,该范围等于存在数据的维度:

var range=spreadsheet.getDataRange();
  • 方法2:
根据前面的方法,如果不想获取范围和行数,则可以调用返回的
range
对象的
getNumRows()
方法:

var range=spreadsheet.getDataRange();
var lastRow=range.getNumRows();
  • 方法3:
您还可以使用
getLastRow()
方法获取此范围最后一行的整数值-此方法返回该范围内的最后一行-但请注意,与
getNumRows()
类似,而不是返回类似
getDataRange()
的范围,它返回一个整数,因此您仍然必须在使用的
getRange()
方法中使用它:

var range=spreadsheet.getDataRange();
var lastRow=range.getLastRows();
  • 方法4:
此方法基本上与上一种方法相同-尽管这是
工作表
类的方法,而不是
范围
类的方法。其用例相同,并以相同的方式返回工作表中最后一行的整数值。如果您只需要最后一行的值,因为要定义的值较少,并且不必从返回的范围中提取,那么这可能是最好的选择:

var lastRow=spreadsheet.getLastRow();
参考资料:

谢谢,我花了很长时间才弄明白如何使用它并将其整合在一起,但现在它就像我计划的那样工作。