En utilisant Apache POI HSSF, Comment puis-je actualiser toutes les cellules de formule à la fois?
Je remplis des cellules D'un fichier Excel en utilisant Apache POI, et il y a beaucoup de cellules de formule dans le document. Cependant, leurs valeurs ne sont pas actualisées lorsque j'ouvre le document dans Excel.
Je comprends que j'ai besoin d'utiliser un FormulaEvaluator
pour actualiser les cellules de formule. Existe-t-il un moyen, cependant, de mettre à jour toutes les cellules de formule à la fois? Il y a un lot d'entre eux, et bien que faire une liste exhaustive ne soit pas hors de question, ce n'est certainement pas quelque chose que je suis très prêt à faire.
2 réponses
Bien sûr. Rafraîchir toutes les formules dans un classeur est peut-être le cas d'utilisation le plus typique de toute façon.
Si vous utilisez HSSF, appelez evaluatorAllFormulaCells :
HSSFFormulaEvaluator.evaluateAllFormulaCells(hssfWorkbook)
Si vous utilisez XSSF, appelez evaluatorAllFormulaCells :
XSSFFormulaEvaluator.evaluateAllFormulaCells(xssfWorkbook)
Plus de détails sont disponibles sur le site web poi
wb.setForceFormulaRecalculation(true);
// replace "wb" with your HSSFWorkbook/XSSFWorkbook object