Apache POI - Công thức
Chương này đưa bạn qua quá trình áp dụng các công thức khác nhau trên các ô bằng lập trình Java. Mục đích cơ bản của ứng dụng Excel là duy trì dữ liệu số bằng cách áp dụng các công thức trên đó.
Trong một công thức, chúng tôi chuyển các giá trị động hoặc vị trí của các giá trị trong trang tính Excel. Khi thực hiện công thức này, bạn sẽ nhận được kết quả mong muốn. Bảng sau liệt kê một số công thức cơ bản thường được sử dụng trong Excel.
Hoạt động | Cú pháp |
---|---|
Thêm nhiều số | = SUM (Loc1: Locn) or = SUM (n1, n2,) |
Đếm | = COUNT (Loc1: Locn) or = COUNT (n1, n2,) |
Lũy thừa của hai số | = POWER (Loc1, Loc2) or = POWER (số, công suất) |
Tối đa nhiều số | = MAX (Loc1: Locn) or = MAX (n1, n2,) |
Sản phẩm | = SẢN PHẨM (Loc1: Locn) or = SẢN PHẨM (n1, n2,) |
yếu tố | = SỰ THẬT (Locn) or = THỰC TẾ (số) |
Số tuyệt đối | = ABS (Locn) or = ABS (số) |
Cuộc hẹn hôm nay | = HÔM NAY () |
Chuyển đổi chữ thường | = LOWER (Locn) or = LOWER (văn bản) |
Căn bậc hai | = SQRT (locn) or = SQRT (số) |
Đoạn mã sau được sử dụng để thêm công thức vào một ô và thực thi nó.
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");
}
}
Lưu mã trên dưới dạng Formula.java và sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau.
$javac Formula.java
$java Formula
Nó sẽ tạo một tệp Excel có tên formula.xlsx trong thư mục hiện tại của bạn và hiển thị đầu ra sau trên dấu nhắc lệnh.
fromula.xlsx written successfully
Các formula.xlsx tệp trông như sau.