本章将引导您完成使用Java编程在单元格上应用不同公式的过程。Excel应用程序的基本目的是通过在其上应用公式来维护数值数据。

在公式中，我们在Excel工作表中传递动态值或值的位置。执行此公式后，您将获得所需的结果。下表列出了Excel中经常使用的一些基本公式。

Operation Syntax
Adding multiple numbers = SUM(Loc1:Locn) or = SUM(n1,n2,)
Count = COUNT(Loc1:Locn) or = COUNT(n1,n2,)
Power of two numbers = POWER(Loc1,Loc2) or = POWER(number, power)
Max of multiple numbers = MAX(Loc1:Locn) or = MAX(n1,n2,)
Product = PRODUCT(Loc1:Locn) or = PRODUCT(n1,n2,)
Factorial = FACT(Locn) or = FACT(number)
Absolute number = ABS(Locn) or = ABS(number)
Today date =TODAY()
Converts lowercase = LOWER(Locn) or = LOWER(text)
Square root = SQRT(locn) or = SQRT(number)

以下代码用于将公式添加到单元格并执行。

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

将以上代码另存为Formula.java，然后在命令提示符下进行编译并执行，如下所示。

$javac Formula.java$java Formula

它将在当前目录中生成一个名为Formula.xlsx的Excel文件，并在命令提示符下显示以下输出。

fromula.xlsx written successfully

该formula.xlsx文件如下所示。