Google apps script Google sheets脚本以批量隐藏行

Google apps script Google sheets脚本以批量隐藏行,google-apps-script,google-sheets,batch-processing,Google Apps Script,Google Sheets,Batch Processing,我当前正在使用此脚本隐藏K列中包含0的行 function Hide() { var s = SpreadsheetApp.getActive() .getSheetByName('Sheet1'); s.getRange('K:K') .getValues() .forEach(function (r, i) { if (r[0] !== '' && r[0].toString(

我当前正在使用此脚本隐藏K列中包含0的行

function Hide() {

    var s = SpreadsheetApp.getActive()
         .getSheetByName('Sheet1');
        s.getRange('K:K')
        .getValues()
        .forEach(function (r, i) {
            if (r[0] !== '' && r[0].toString()
                .charAt(0) == 0) s.hideRows(i + 1)
        });   
}
这很完美,唯一的一点是,在这里,当我运行脚本时,它一行一行地隐藏(现在我有很多行,这需要很多时间)

有没有办法将其更改为批量工作?

使用

第一种形式只使用一个参数rowIndex,第二种形式使用两个参数rowIndex和numbRows


显然,使用建议的方法意味着要检查脚本的逻辑。

这就是创造奇迹的脚本

  function Hide() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Ventas");
  var currentRange = ss.getRangeByName("RangeCalculation");
  var rangeStart = currentRange.getRow();
  var values = currentRange.getValues();

  var index = 0, rows = 1;
  var show = !(values[0][12] == "" );

  for (var i = 1, length = values.length; i < length; i++) {
    if (values[i][0] == 1 ) {
      if (show) {
        sheet.showRows(rangeStart + index, rows);
        show = false;
        index = i;
        rows = 1;
      } else
        rows++;
    } else {
      if (show)
        rows++;
      else {
        sheet.hideRows(rangeStart + index, rows);
        show = true;
        index = i;
        rows = 1;
      }
    }
  }

  if (show)
    sheet.showRows(rangeStart + index, rows);
  else
    sheet.hideRows(rangeStart + index, rows);
}
函数隐藏(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“Ventas”);
var currentRange=ss.getRangeByName(“RangeCalculation”);
var rangeStart=currentRange.getRow();
var values=currentRange.getValues();
var指数=0,行数=1;
变量显示=!(值[0][12]=”);
对于(变量i=1,长度=values.length;i
很高兴您能分享您的解决方案。如果你能简单描述一下你的学习,而不是仅仅粘贴代码,那会更好。顺便说一句,你包括我的建议,而不是hideRows(rowIndex)你的代码使用hideRows(rowIndex,numRows):@Rubén我尝试过你的方法,它运行起来和第一个示例一样慢。。。你能解释一下你的一些事情吗?@AlezShevyakov你需要解释什么?(请对我的回答发表评论)可能重复