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.