Apache POI - Fórmula
Este capítulo o conduz pelo processo de aplicação de fórmulas diferentes em células usando a programação Java. O objetivo básico do aplicativo Excel é manter os dados numéricos aplicando fórmulas sobre eles.
Em uma fórmula, passamos valores dinâmicos ou localizações dos valores na planilha do Excel. Ao executar esta fórmula, você obtém o resultado desejado. A tabela a seguir lista algumas fórmulas básicas usadas com freqüência no Excel.
Operação | Sintaxe |
---|---|
Adicionando vários números | = SUM (Loc1: Locn) or = SOMA (n1, n2,) |
Contagem | = COUNT (Loc1: Locn) or = CONTAGEM (n1, n2,) |
Potência de dois números | = POTÊNCIA (Loc1, Loc2) or = POTÊNCIA (número, potência) |
Máximo de vários números | = MAX (Loc1: Locn) or = MAX (n1, n2,) |
produtos | = PRODUTO (Loc1: Locn) or = PRODUTO (n1, n2,) |
Fatorial | = FATO (Locn) or = FATO (número) |
Número absoluto | = ABS (Locn) or = ABS (número) |
Data de hoje | = HOJE () |
Converte letras minúsculas | = INFERIOR (Locn) or = INFERIOR (texto) |
Raiz quadrada | = SQRT (locn) or = SQRT (número) |
O código a seguir é usado para adicionar fórmulas a uma célula e executá-la.
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");
}
}
Salve o código acima como Formula.java e então compilar e executá-lo a partir do prompt de comando da seguinte maneira.
$javac Formula.java
$java Formula
Ele irá gerar um arquivo Excel chamado formula.xlsx em seu diretório atual e exiba a seguinte saída no prompt de comando.
fromula.xlsx written successfully
o formula.xlsx arquivo tem a seguinte aparência.