Microsoft Excel強大的公式功能對於執行複雜的計算,數據分析和創建動態報告至關重要。但是,如果您可以使用Java庫自動化這些公式化操作,該怎麼辦?那就是Apache Poi發揮作用的地方。在此博客文章中,我們將展示如何使用Apache POI庫來計算Java應用程序中的Excel公式,並將工作簿保存為XLSX文件

了解公式和計算

公式是Excel功能的核心。它們允許您執行數學操作,操縱數據並在不同單元格之間建立關係。 Apache Poi使Java開發人員可以編程生成和操縱這些公式,從而實現自動化和自定義。

設置您的項目

在我們深入了解公式的細節之前,讓我們設置我們的項目與Apache Poi一起工作。您需要在Java項目中包括適當的POI庫。您可以從Apache POI網站下載庫,也可以通過Maven或Gradle等依賴關係管理工具添加它們。查看我們的Apache POI API概述文章,以獲取有關設置項目開發環境的更多信息。

<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>

創建基本公式

讓我們從一個簡單的例子開始。想像一下,您的Excel表格有兩個包含數字的列。您想在第三列中計算這些數字的總和。您可以使用Apache Poi實現此目的:

導入必要的類

首先從Apache POI庫中導入所需的類,例如工作簿,工作表和行。

訪問所需的單元

使用getCell()方法訪問包含您要匯總的數字的單元格。

創建公式

利用CreateFormula()方法生成公式。在這種情況下,它將類似於總和(A2:B2)。

將公式設置為目標單元

將公式分配給您希望使用setCellformula()方法出現結果的單元格。

評估公式

設置公式後,使用 estureformulacell() 計算和填充結果。

##使用Apache Poi Java庫{.wp-block-pheading}的excel公式} 讓我們查看以下代碼示例,其中使用:

  • 添加 公式以在單元格中添加兩個值
  • 功率 公式來計算單元格中值的功率
  • max 公式以獲取單元格的最大值
  • 事實 公式計算單元格中值的階乘
  • sqrt 公式計算單元格中值的平方根 以下代碼示例顯示了從Java應用程序中使用這些Excel公式。
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");

結論

Apache POI解鎖了通過Java代碼自動化和自定義Excel公式和計算的潛力。無論您是構建財務報告,數據分析工具還是任何涉及Excel操作的應用程序,Apache Poi的配方功能都是您工具包的強大補充。通過了解如何使用Apache POI創建,評估和管理公式,您可以簡化工作流程,提高準確性並節省寶貴的時間。