POI de Apache - Fórmula

Este capítulo lo lleva a través del proceso de aplicación de diferentes fórmulas en celdas usando programación Java. El propósito básico de la aplicación Excel es mantener los datos numéricos mediante la aplicación de fórmulas.

En una fórmula, pasamos valores dinámicos o ubicaciones de los valores en la hoja de Excel. Al ejecutar esta fórmula, obtiene el resultado deseado. La siguiente tabla enumera algunas fórmulas básicas que se utilizan con frecuencia en Excel.

Operación Sintaxis
Sumar varios números = SUMA (Loc1: Locn) or = SUMA (n1, n2,)
Contar = CONTAR (Loc1: Locn) or = CONTAR (n1, n2,)
Poder de dos números = POTENCIA (Loc1, Loc2) or = POTENCIA (número, potencia)
Máximo de varios números = MAX (Loc1: Locn) or = MAX (n1, n2,)
Producto = PRODUCTO (Loc1: Locn) or = PRODUCTO (n1, n2,)
Factorial = HECHO (Locn) or = HECHO (número)
Número absoluto = ABS (Locn) or = ABS (número)
Fecha de hoy = HOY ()
Convierte minúsculas = INFERIOR (Locn) or = INFERIOR (texto)
Raíz cuadrada = SQRT (locn) or = SQRT (número)

El siguiente código se usa para agregar fórmulas a una celda y ejecutarla.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Formula {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("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.setCellType(XSSFCell.CELL_TYPE_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.setCellType(XSSFCell.CELL_TYPE_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.setCellType(XSSFCell.CELL_TYPE_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.setCellType(XSSFCell.CELL_TYPE_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.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("SQRT(C5)");
      cell = row.createCell(3);
      cell.setCellValue("SQRT(C5)");
      workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();
      FileOutputStream out = new FileOutputStream(new File("formula.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("fromula.xlsx written successfully");
   }
}

Guarde el código anterior como Formula.java y luego compílelo y ejecútelo desde el símbolo del sistema de la siguiente manera.

$javac Formula.java
$java Formula

Generará un archivo de Excel llamado formula.xlsx en su directorio actual y muestre la siguiente salida en el símbolo del sistema.

fromula.xlsx written successfully

los formula.xlsx archivo tiene el siguiente aspecto.