为什么Excel中的泊松公式在Java中不起作用?

时间:2019-03-31 14:01:35

标签: java excel vba excel-formula apache-poi

我有一个Excel文件,其中包含使用POISSON的公式。在excel中工作正常,但是我们有一个Java程序可以使用apache POI读取excel文件中的值。公式为何无效?

1 个答案:

答案 0 :(得分:1)

使用apache poi 4.0.1 POISSON函数可以很好地用作Excel公式。

示例:

import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

class CreateExcelFormula {

 public static void main(String[] args) throws Exception {

  try (Workbook workbook = new XSSFWorkbook(); 
       FileOutputStream fileout = new FileOutputStream("Excel.xlsx") ) {

   Sheet sheet = workbook.createSheet(); 
   sheet.createRow(0).createCell(0).setCellValue(2);
   sheet.createRow(1).createCell(0).setCellValue(5);
   sheet.createRow(2).createCell(0).setCellFormula("POISSON(A1,A2,TRUE)");

   FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
   DataFormatter dataFormatter = new DataFormatter(java.util.Locale.US);

   String cellValue = dataFormatter.formatCellValue(sheet.getRow(2).getCell(0), formulaEvaluator);
   System.out.println(cellValue);

   workbook.write(fileout);
  }
 }
}

此打印

axel@arichter:~/Dokumente/JAVA/poi/poi-4.0.1$ javac -Xlint:deprecation -Xlint:unchecked -cp .:./*:./lib/*:./ooxml-lib/* CreateExcelFormula.java 
axel@arichter:~/Dokumente/JAVA/poi/poi-4.0.1$ java -cp .:./*:./lib/*:./ooxml-lib/* CreateExcelFormula 
0.1246520195

结果Excel.xlsx在单元格=POISSON(A1,A2,TRUE)中包含公式A3