Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
Google apps script 服务错误:电子表格(带.setColumnFilterCriteria的行…)_Google Apps Script - Fatal编程技术网

Google apps script 服务错误:电子表格(带.setColumnFilterCriteria的行…)

Google apps script 服务错误:电子表格(带.setColumnFilterCriteria的行…),google-apps-script,Google Apps Script,这个问题是另一个问题的延伸。 我遇到了一个错误,特别是服务错误:电子表格(第8行,文件“过滤器”),代码如下: function testFilter() { var ss = SpreadsheetApp.getActive(); var monthlyDetailSht = ss.getSheetByName("Monthly_Detail"); var filterRange = monthlyDetailSht.getRange(2,12,359,1).getValues(

这个问题是另一个问题的延伸。

我遇到了一个错误,特别是
服务错误:电子表格(第8行,文件“过滤器”)
,代码如下:

function testFilter() {
  var ss = SpreadsheetApp.getActive();
  var monthlyDetailSht = ss.getSheetByName("Monthly_Detail");
  var filterRange = monthlyDetailSht.getRange(2,12,359,1).getValues(); //Get L column values    
  var hidden = getHiddenValueArray2(filterRange,["Apple"]); //get values except Apple    
  var filterCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(hidden).build();
  var rang = monthlyDetailSht.getDataRange();
  var filter = rang.getFilter() || rang.createFilter();// getFilter already available or create  a new one

  //remove filter and flush
  if(monthlyDetailSht.getFilter() != null){monthlyDetailSht.getFilter().remove();}
  SpreadsheetApp.flush();

  filter.setColumnFilterCriteria(12, filterCriteria);
};



    //flattens and strips column L values of all the values in the visible value array
    function getHiddenValueArray2(colValueArr,visibleValueArr){
      var flatArr = colValueArr.map(function(e){return e[0];}); //Flatten column L
      visibleValueArr.forEach(function(e){ //For each value in visible array    
        var i = flatArr.indexOf(e.toString()); 
        while (i != -1){ //if flatArray has the visible value        
          flatArr.splice(i,1); //splice(delete) it
          i = flatArr.indexOf(e.toString());
        }
      });
      return flatArr;
    }
我使用了一个
Logger.log(隐藏)
来捕获函数返回的值,它是所有其他“结果”的列表,重复次数与L列中可用的次数相同。我使用的是水果作为敏感数据的替代品

所以我的问题来了。为什么我现在得到了这个错误,而它在几天内工作得非常好?我如何才能纠正这个错误

尝试的修复程序:

  • 我已尝试在数据末尾添加行。未修复
  • 我尝试删除过滤器,刷新,设置过滤器。没有修复。(更新了上面的代码,以防其他人感兴趣。)

它现在可以工作了。我想为那些在谷歌搜索中偶然发现这一点的人指出几件事。首先,这个问题实际上是谷歌方面的一个错误。使用我上面的代码现在可以工作了。我没有更改它

第二,我能够通过宏记录器记录过滤过程,而我的原始代码不起作用。这可能有助于那些时间紧迫、迫不及待地等待谷歌把他们的东西整理好的人。我仍然不确定我的原始代码中具体是什么导致了错误,但我猜这并不重要。我已经确定了我花了一整天的时间研究这个错误,但它似乎是零星的,没有一个罪魁祸首。如果将来发生的话,我的问题可能和你的不一样


希望有帮助!

在ss运行期间和出现错误期间,您是否在ss中添加或删除了任何内容?如果是,添加的内容是否有任何具体/不同?删除过滤器、刷新、然后设置过滤器是否有帮助?从rest API中,如果已经存在基本过滤器,则尝试设置基本过滤器是错误的,因此应用程序脚本方法可能存在类似问题。此外,隐藏值数组中是否存在重复值?@I'-'I否,代码在工作后没有更改。此代码是在此文件上创建的,但随后应用到另一个文件。另一个文件开始给我错误,因此我返回此文件以查看原始文件是否也是gi告诉我错误是这样的。@tehhowch,我该怎么洗?@tehhowch,我知道怎么做了你的建议。不走运。