Apache POI - Formül

Bu bölüm, Java programlamasını kullanarak hücrelere farklı formüller uygulama sürecini ele alır. Excel uygulamasının temel amacı, üzerine formüller uygulayarak sayısal verileri korumaktır.

Bir formülde, Excel sayfasındaki değerlerin dinamik değerlerini veya konumlarını iletiriz. Bu formülü çalıştırdığınızda istediğiniz sonucu elde edersiniz. Aşağıdaki tablo, Excel'de sık kullanılan birkaç temel formülü listeler.

Operasyon Sözdizimi
Birden çok numara eklemek = TOPLA (Loc1: Locn) or = TOPLA (n1, n2,)
Miktar = COUNT (Loc1: Locn) or = COUNT (n1, n2,)
İki sayının gücü = GÜÇ (Loc1, Loc2) or = GÜÇ (sayı, kuvvet)
Maksimum birden çok numara = MAKS (Loc1: Locn) or = MAKS (n1, n2,)
Ürün = ÜRÜN (Loc1: Locn) or = ÇARPIM (n1, n2,)
Faktöriyel = GERÇEK (Locn) or = GERÇEK (sayı)
Mutlak sayı = ABS (Locn) or = ABS (sayı)
Bugünün tarihi = BUGÜN ()
Küçük harfe dönüştürür = DÜŞÜK (Locn) or = DÜŞÜK (metin)
Kare kök = KAREKÖK (locn) or = KAREKÖK (sayı)

Aşağıdaki kod, bir hücreye formül eklemek ve onu yürütmek için kullanılır.

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");
   }
}

Yukarıdaki kodu farklı kaydedin Formula.java ve sonra komut isteminden aşağıdaki gibi derleyin ve çalıştırın.

$javac Formula.java
$java Formula

Adlı bir Excel dosyası oluşturacaktır. formula.xlsx mevcut dizininizde ve komut isteminde aşağıdaki çıktıyı görüntüleyin.

fromula.xlsx written successfully

formula.xlsx dosya aşağıdaki gibi görünür.