POI를 사용하여 열의 특정 값을 갖는 행 수를 얻으려는 Excel 수식을 작성하려고합니다. 필터를 적용하면 개수가 자동으로 업데이트됩니다. 예 : 열의 값이 "Y"또는 "N"인 경우 특정 열에 "Y"가있는 행 수를 가져와야합니다. 이 수는 Excel의 모든 열에 필터를 적용 할 때 자동으로 업데이트됩니다.Apache POI - 필터가 지원되는 열의 특정 값을 가진 행 수를 계산하십시오.
내가 사용하려고
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)");
하지만이 # VALUE를 보여줍니다! 수식의 결과 대신 결과 셀에. 수식 편집을 클릭하고 Enter 키를 누르면 올바른 결과가 표시됩니다. 그런 다음 열을 필터링 할 때 업데이트가 시작됩니다.
나는 workbook.setForceFormulaRecalculation(true)
을 시도했지만 도움이되지 않습니다. SUMPRODUCT에서 뭔가 잘못되었다는 RuntimeException이 발생합니다.
내가 사용 POI 버전 3.9
입니다사람이 내 요구에 사용할 수있는 아니면이 단계에서 진행할 수있는 방법을 다른 기능에 대한 어떤 생각을 가지고 있습니까?
웹 사이트의 지침을 따르지 않고 [수식 계산기] (http://poi.apache.org/spreadsheet/eval.html)를 사용하여 캐시 된 값을 업데이트 한 이유가 있습니까? – Gagravarr
수식 계산기를 HSSFFormulaEvaluator.evaluateAllFormulaCells (통합 문서)로 사용할 때; 다음 예외가 발생합니다. java.lang.RuntimeException : SUMPRODUCT에 대한 잘못된 arg 유형입니다 (org.apache.poi.ss.formula.eval.ErrorEval). – Shakeel