Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Javascript GoogleSheets脚本,将根据特定条件调整(添加或删除)行_Javascript_Google Sheets_Spreadsheet - Fatal编程技术网

Javascript GoogleSheets脚本,将根据特定条件调整(添加或删除)行

Javascript GoogleSheets脚本,将根据特定条件调整(添加或删除)行,javascript,google-sheets,spreadsheet,Javascript,Google Sheets,Spreadsheet,我正在处理一个Google工作表,它从另一个工作表中提取数据。我正在处理的表使用了唯一的筛选函数,因此我只能根据特定条件显示列表。有些条件需要更多的列表,因此需要更多的行;有些条件需要更少的行,因此需要更少的行。我想根据这些调整表上的行数 我提出了这个脚本来删除空行,问题是它只删除最后一行有值之后的空行。它不会删除具有值的行之间的空白行 函数removemptyrows(){ var ss=SpreadsheetApp.getActive(); var allsheets=ss.getSheet

我正在处理一个Google工作表,它从另一个工作表中提取数据。我正在处理的表使用了唯一的筛选函数,因此我只能根据特定条件显示列表。有些条件需要更多的列表,因此需要更多的行;有些条件需要更少的行,因此需要更少的行。我想根据这些调整表上的行数

我提出了这个脚本来删除空行,问题是它只删除最后一行有值之后的空行。它不会删除具有值的行之间的空白行

函数removemptyrows(){
var ss=SpreadsheetApp.getActive();
var allsheets=ss.getSheets();
用于(所有表中的var s){
var表=所有表[s]
var maxRows=sheet.getMaxRows();
var lastRow=sheet.getLastRow();
如果(maxRows-lastRow!=0){
sheet.deleteRows(lastRow+1,maxRows-lastRow);
}
}
}
我似乎也无法创建一个脚本,当条件导致更多数据和行需求时,该脚本将自动附加新行

TLDR

  • 需要自动删除空行的脚本
  • 需要一个脚本,将自动添加行和复制顶行公式
  • 下面是我创建的一个示例工作表,以更好地理解我的意思:

    要删除中间的空行,您需要查询所有行,或者它们是空的 这样做的一种方法是,取每行的第一个单元格(A列),并定义如果
    A
    为空,则应将整行视为空

    样本:

    函数removemptyrows(){
    var ss=SpreadsheetApp.getActive();
    var allsheets=ss.getSheets();
    用于(所有表中的var s){
    var表=所有表;
    var data=sheet.getDataRange().getValues();
    对于(var i=data.length;i>0;i--){
    var maxRows=sheet.getMaxRows();
    var lastRow=sheet.getLastRow();
    如果(maxRows-lastRow!=0){
    sheet.deleteRows(lastRow+1,maxRows-lastRow);
    }
    var maxRows=sheet.getMaxRows();
    var lastRow=sheet.getLastRow();
    如果(数据[i-1][0]=“”){
    第1页删除第(i)行;
    }
    }
    }
    }
    
    你需要判断它是否适合你。 在您的情况下,列A中的单元格可能为空,但行在其他列中有条目。在这种情况下,您需要确定哪一列是决定整行为空的关键列,或者测试每行的所有列,这将使您的代码变慢。

    要删除中间的空行,您需要查询所有行,或者它们为空 这样做的一种方法是,取每行的第一个单元格(A列),并定义如果
    A
    为空,则应将整行视为空

    样本:

    函数removemptyrows(){
    var ss=SpreadsheetApp.getActive();
    var allsheets=ss.getSheets();
    用于(所有表中的var s){
    var表=所有表;
    var data=sheet.getDataRange().getValues();
    对于(var i=data.length;i>0;i--){
    var maxRows=sheet.getMaxRows();
    var lastRow=sheet.getLastRow();
    如果(maxRows-lastRow!=0){
    sheet.deleteRows(lastRow+1,maxRows-lastRow);
    }
    var maxRows=sheet.getMaxRows();
    var lastRow=sheet.getLastRow();
    如果(数据[i-1][0]=“”){
    第1页删除第(i)行;
    }
    }
    }
    }
    
    你需要判断它是否适合你。 在您的情况下,列A中的单元格可能为空,但行在其他列中有条目。在这种情况下,您需要确定哪一列是关键列,以确定整行为空—或者测试每行的所有列—这将使您的代码变慢