Las poderosas capacidades de fórmula de Microsoft Excel son esenciales para realizar cálculos complejos, análisis de datos y crear informes dinámicos. Pero, ¿qué pasaría si pudiera automatizar estas operaciones fórmulas usando una biblioteca Java? Ahí es donde entra en juego Apache Poi. En esta publicación de blog, mostraremos cómo usar la biblioteca Apache POI para calcular las fórmulas de Excel desde su aplicación Java y guardar el libro de trabajo como archivo XLSX.

Comprender fórmulas y cálculos

Las fórmulas están en el corazón de la funcionalidad de Excel. Le permiten realizar operaciones matemáticas, manipular datos y crear relaciones entre diferentes células. Apache POI faculta a los desarrolladores de Java para generar y manipular estas fórmulas mediante programación, habilitando la automatización y la personalización.

Configuración de su proyecto

Antes de sumergirnos en los detalles de las fórmulas, establezcamos nuestro proyecto para trabajar con Apache POI. Deberá incluir las bibliotecas POI apropiadas en su proyecto Java. Puede descargar las bibliotecas del sitio web de Apache POI o agregarlas a través de una herramienta de administración de dependencias como Maven o Gradle. Consulte nuestro artículo Apache POI API Overview para obtener más información sobre la configuración del entorno de desarrollo para su proyecto.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Creación de fórmulas básicas

Comencemos con un ejemplo simple. Imagine que tiene una hoja de Excel con dos columnas que contienen números. Desea calcular la suma de estos números en una tercera columna. Así es como puedes lograr esto usando Apache POI:

Importar las clases necesarias

Comience por importar las clases requeridas de la Biblioteca Apache POI, como Libro de trabajo, Hoja y Row.

Acceda a las celdas deseadas

Use el método GetCell () para acceder a las celdas que contienen los números que desea sumar.

Crear una fórmula

Utilice el método CreateFormula () para generar la fórmula. En este caso, será algo así como suma (A2: B2).

Establezca la fórmula en la celda objetivo

Asigne la fórmula a la celda donde desea que aparezca el resultado usando el método SetCellFormula ().

Evaluar la fórmula

Después de establecer la fórmula, use el método EvaluateFormulAcell () para calcular y poblar el resultado.

Fórmulas de Excel usando la biblioteca Apache Poi Java

Echemos un vistazo a la siguiente muestra de código que usa:

  • Agregar fórmula para agregar dos valores en una celda
  • Potencia Fórmula para calcular la potencia de un valor en una celda
  • Max Fórmula para obtener el valor máximo de una celda
  • Fórmula de hecho para calcular el factorial de un valor en una celda
  • Fórmula Sqrt para calcular la raíz cuadrada de un valor en una celda La siguiente muestra de código muestra el uso de estas fórmulas de Excel desde su aplicación Java.
XSSFWorkbook wb = new XSSFWorkbook(); 
XSSFSheet spreadsheet = wb("formula");
XSSFRow row = spreadsheet.createRow(1);
XSSFCell cell = row.createCell(1);
cell.setCellValue("A = ");
cell = row.createCell(2);
cell.setCellValue(2);
row = spreadsheet.createRow(2);
cell = row.createCell(1);
cell.setCellValue("B = ");
cell = row.createCell(2);
cell.setCellValue(4);
row = spreadsheet.createRow(3);
cell = row.createCell(1);
cell.setCellValue("Total = ");
cell = row.createCell(2);
// Create SUM formula
cell.setCellFormula("SUM(C2:C3)");
cell = row.createCell(3);
cell.setCellValue("SUM(C2:C3)");
row = spreadsheet.createRow(4);
cell = row.createCell(1);
cell.setCellValue("POWER =");
cell=row.createCell(2);
// Create POWER formula
cell.setCellFormula("POWER(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("POWER(C2,C3)");
row = spreadsheet.createRow(5);
cell = row.createCell(1);
cell.setCellValue("MAX = ");
cell = row.createCell(2);
// Create MAX formula
cell.setCellFormula("MAX(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("MAX(C2,C3)");
row = spreadsheet.createRow(6);
cell = row.createCell(1);
cell.setCellValue("FACT = ");
cell = row.createCell(2);
// Create FACT formula
cell.setCellFormula("FACT(C3)");
cell = row.createCell(3);
cell.setCellValue("FACT(C3)");
row = spreadsheet.createRow(7);
cell = row.createCell(1);
cell.setCellValue("SQRT = ");
cell = row.createCell(2);
// Create SQRT formula
cell.setCellFormula("SQRT(C5)");
cell = row.createCell(3);
cell.setCellValue("SQRT(C5)");
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
FileOutputStream out = new FileOutputStream("formula.xlsx");
wb.write(out);
out.close();
System.out.println("fromula.xlsx written successfully");

Conclusión

Apache POI desbloquea el potencial para automatizar y personalizar las fórmulas y cálculos de Excel a través del código Java. Ya sea que esté creando informes financieros, herramientas de análisis de datos o cualquier aplicación que involucre la manipulación de Excel, las capacidades de fórmula de Apache POI son una poderosa adición a su kit de herramientas. Al comprender cómo crear, evaluar y administrar fórmulas con Apache POI, puede optimizar sus flujos de trabajo, mejorar la precisión y ahorrar tiempo valioso.