Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Excel ApachePOI—统计支持筛选器的列中具有特定值的行数_Excel_Filter_Count_Apache Poi_Rows - Fatal编程技术网

Excel ApachePOI—统计支持筛选器的列中具有特定值的行数

Excel ApachePOI—统计支持筛选器的列中具有特定值的行数,excel,filter,count,apache-poi,rows,Excel,Filter,Count,Apache Poi,Rows,我正在尝试编写一个excel公式,以使用POI获取列中具有特定值的行数。当我们应用过滤器时,计数应该自动更新。 例如:如果一列的值是“Y”或“N”,我需要得到在特定列中有“Y”的行数。当我们对excel中的任何列应用筛选器时,此计数应自动更新 我试着用 cell1.setCellFormula("COUNTIF(S11:S6768,\"N\")"); 但COUNTIF不会在过滤器上自动更新 我也试过, cell1.setCellFormula("SUMPRODUCT(--(S11:S6768=

我正在尝试编写一个excel公式,以使用POI获取列中具有特定值的行数。当我们应用过滤器时,计数应该自动更新。 例如:如果一列的值是“Y”或“N”,我需要得到在特定列中有“Y”的行数。当我们对excel中的任何列应用筛选器时,此计数应自动更新

我试着用

cell1.setCellFormula("COUNTIF(S11:S6768,\"N\")");
但COUNTIF不会在过滤器上自动更新

我也试过,

cell1.setCellFormula("SUMPRODUCT(--(S11:S6768=\"N\"),SUBTOTAL(3,OFFSET(S11,ROW(S11:S6768)-ROW(S11),0)))+(NOW()*0)");
但这表明了#价值!在结果单元格中,而不是在公式的结果中。单击编辑公式并按enter键后,它将显示正确的结果。然后,当我们过滤任何列时,它开始更新

我尝试了
workbook.setforceFormulaRecomulation(true)
,但没有帮助。我收到一个运行时异常,表示SUMPRODUCT中存在不正确的内容

我使用的POI版本是3.9


有没有人知道我可以使用什么其他功能来满足我的需求,或者在这个阶段我该如何继续?

我修复了它。我必须用所需的公式创建模板,并将数据附加到模板中以使其工作。打开excel和筛选时公式的计算结果良好。

是否有原因不按照网站上的说明并使用更新缓存值?当我使用公式计算器作为HSSFFormulaEvaluator时。evaluateAllFormulaCells(工作簿);它抛出以下异常java.lang.RuntimeException:SUMPRODUCT的参数类型无效:(org.apache.poi.ss.formula.eval.ErrorEval)