2017-10-27 1 views
0

Apache POI를 사용하여 Excel 파일의 셀을 채우고 있으며 수식 셀이 많이 있습니다. 그러나 나는 Office와 같은 Excel 도구에서 문서를 여는 대신 평가할 값을 직접 가져 오려고합니다. 그래서 저는 형식이 FORMULA 인 모든 셀에 FormulaEvaluator를 사용합니다. 그러나 평가할 셀이 많은 많은 시트가 있습니다. 내 프로그램이 너무 느리고 CPU가 너무 높습니다! 끔찍한 일! 어떻게 해결할 수 있습니까? 사용Apache POI FormulaEvaluator 사용

답변

0

시도 :

FormulaEvaluator evaluator=workbook.getCreationHelper().createFormulaEvaluator(); 
evaluator.evaluateAll(); 

관련 통합 문서의 모든 시트에있는 모든 세포를 통해 루프. 수식이 포함 된 셀의 경우 수식이 계산되고 결과가 저장됩니다. 이 세포는 수식 세포로 남아 있습니다. 수식을 포함하지 않는 셀의 경우 변경되지 않습니다. 이것은 모든 셀에서 루핑하는 유용한 랩퍼이며 각 셀에서 evaluateFormulaCell을 호출합니다.