Các khả năng công thức mạnh mẽ của Microsoft Excel, rất cần thiết để thực hiện các tính toán phức tạp, phân tích dữ liệu và tạo các báo cáo động. Nhưng điều gì sẽ xảy ra nếu bạn có thể tự động hóa các hoạt động công thức này bằng thư viện Java? Đó là nơi mà Apache Poi phát huy tác dụng. Trong bài đăng trên blog này, chúng tôi sẽ chỉ ra cách sử dụng thư viện Apache POI để tính toán các công thức Excel từ bên trong ứng dụng Java của bạn và lưu sổ làm việc dưới dạng Tệp XLSX.

Hiểu các công thức và tính toán

Các công thức là trung tâm của chức năng Excel. Chúng cho phép bạn thực hiện các hoạt động toán học, thao tác dữ liệu và tạo mối quan hệ giữa các ô khác nhau. Apache POI trao quyền cho các nhà phát triển Java tạo và thao tác các công thức này theo chương trình, cho phép tự động hóa và tùy chỉnh.

Thiết lập dự án của bạn

Trước khi chúng tôi đi sâu vào các chi tiết cụ thể của các công thức, hãy để thành lập dự án của chúng tôi để làm việc với Apache POI. Bạn cần phải bao gồm các thư viện POI thích hợp trong dự án Java của bạn. Bạn có thể tải xuống các thư viện từ trang web Apache POI hoặc thêm chúng thông qua một công cụ quản lý phụ thuộc như Maven hoặc Gradle. Kiểm tra tổng quan API APACHE POI của chúng tôi để biết thêm thông tin về việc thiết lập môi trường phát triển cho dự án của bạn.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Tạo các công thức cơ bản {.

Hãy bắt đầu với một ví dụ đơn giản. Hãy tưởng tượng bạn có một tờ Excel với hai cột chứa số. Bạn muốn tính tổng của các số này trong cột thứ ba. Đây là cách bạn có thể đạt được điều này bằng cách sử dụng Apache POI:

Nhập các lớp cần thiết

Bắt đầu bằng cách nhập các lớp cần thiết từ thư viện Apache POI, chẳng hạn như sổ làm việc, tờ và hàng.

Truy cập các ô mong muốn

Sử dụng phương thức getCell () để truy cập các ô chứa các số bạn muốn tổng hợp.

Tạo một công thức {.

Sử dụng phương thức createdFormula () để tạo công thức. Trong trường hợp này, nó sẽ giống như Sum (A2: B2).

Đặt công thức thành ô đích

Gán công thức cho ô nơi bạn muốn kết quả xuất hiện bằng phương thức setCellFormula ().

Đánh giá công thức

Sau khi thiết lập công thức, sử dụng phương thức EvalitorFormulacell () để tính toán và điền kết quả.

Công thức excel sử dụng thư viện Apache POI Java

Hãy cùng xem mẫu mã sau sử dụng:

  • Thêm Công thức để thêm hai giá trị vào một ô
  • Công thức Công thức để tính công suất của giá trị trong ô
  • Max Công thức để có được giá trị tối đa của một ô
  • Thực tế Công thức để tính toán giai thừa của một giá trị trong một ô
  • Công thức SQRT để tính toán căn bậc hai của giá trị trong ô Mẫu mã sau đây cho thấy việc sử dụng các công thức Excel này từ trong ứng dụng Java của bạn.
XSSFWorkbook wb = new XSSFWorkbook(); 
XSSFSheet spreadsheet = wb("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.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.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.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.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.setCellFormula("SQRT(C5)");
cell = row.createCell(3);
cell.setCellValue("SQRT(C5)");
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
FileOutputStream out = new FileOutputStream("formula.xlsx");
wb.write(out);
out.close();
System.out.println("fromula.xlsx written successfully");

Kết luận

Apache POI mở khóa tiềm năng để tự động hóa và tùy chỉnh các công thức và tính toán excel thông qua mã Java. Cho dù bạn xây dựng các báo cáo tài chính, các công cụ phân tích dữ liệu hoặc bất kỳ ứng dụng nào liên quan đến thao tác Excel, khả năng công thức của Apache POI là một sự bổ sung mạnh mẽ cho bộ công cụ của bạn. Bằng cách hiểu cách tạo, đánh giá và quản lý các công thức bằng Apache POI, bạn có thể hợp lý hóa quy trình công việc của mình, tăng cường độ chính xác và tiết kiệm thời gian có giá trị.