gpt4 book ai didi

google-apps-script - 使用 Apps 脚本删除 Google 表格中的空行后复制数据?

转载 作者:行者123 更新时间:2023-12-04 09:43:29 26 4
gpt4 key购买 nike

以下代码工作正常。它正在排序、删除重复项和删除空行。然后我只想将数据行复制到最后一个数据行之后。但是代码正在复制带有空行的数据行。复制时需要避免空行

var column = 3;   
range.sort({column: column, ascending:true});
range.removeDuplicates([column]);

//now delete empty rows if any
for (var i = range.getHeight(); i >= 1; i--){
if(range.getCell(i, 1).isBlank()){
sheet.deleteRow(range.getCell(i, 1).getRow());
}
}
//For Double periods in a class
var dataToCopy = range.getValues(); //Gets the values of the source range in a 2 dimensional array
var copyData = sheet.getRange(range.getLastRow()+1,1,dataToCopy.length,dataToCopy[0].length).setValues(dataToCopy);

最佳答案

我相信你的目标如下。

  • 在脚本中的 for 循环完成后,您希望检索没有空行的值。

  • 为此,这个答案怎么样?

    retrofit 要点:
  • 在这个答案中,计算删除行的数量,数量从range减少。的 range.getValues(); .至此,dataToCopy不包括空行。

  • 当以上几点反射(reflect)到你的脚本中时,它变成如下。

    修改后的脚本:
    var column = 3;
    range.sort({column: column, ascending:true});
    range.removeDuplicates([column]);

    //now delete empty rows if any

    var deleteRows = 0; // <--- Added

    for (var i = range.getHeight(); i >= 1; i--){
    if(range.getCell(i, 1).isBlank()){
    sheet.deleteRow(range.getCell(i, 1).getRow());
    deleteRows++; // <--- Added
    }
    }
    //For Double periods in a class
    var dataToCopy = range.offset(0, 0, range.getNumRows() - deleteRows).getValues(); // <--- Modified
    var copyData = sheet.getRange(sheet.getLastRow()+1,1,dataToCopy.length,dataToCopy[0].length).setValues(dataToCopy); // <--- Modified
  • 如果要将值放在 range 的最后一行,请将最后一行修改为脚本的最后一行。

  • 引用:
  • offset(rowOffset, columnOffset, numRows)
  • getLastRow() of Class Sheet
  • 关于google-apps-script - 使用 Apps 脚本删除 Google 表格中的空行后复制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227320/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com