JavaPOI的计算公式

简介: JavaPOI的计算公式

首先需要准备一个excel

需要获取计算公式eval  FormulaEvaluator

image.png

如果我们用没有计算公式的行,那么不会有用


image.png

package com.wyh.Test;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
 * @program: JavaExecl
 * @description: excel计算公式
 * @author: 魏一鹤
 * @createDate: 2021-12-18 00:03
 **/
public class ExcelCalculation {
//全局路径,供我们操作使用方便
    static String path="D:\\Tools\\JavaWorkSpace\\JavaExecl\\";
    @Test
public void  testFormula() throws Exception {
//首先还是要获取路径
        FileInputStream fileInputStream = new FileInputStream(path + "计算公式.xls");
//读取文件
        Workbook workbook = new HSSFWorkbook(fileInputStream);
//读取表
        Sheet sheet = workbook.getSheetAt(0);
//根据表拿出数据
        //因为我们的需要计算的单元格在第五行 从0开始的 所以下标为4
        //如果我们用没有计算公式的行,那么不会有用
        Row row = sheet.getRow(4);
//(第一行 4,1)
        Cell cell = row.getCell(0);
//拿到计算公式 eval
        FormulaEvaluator formulaEvaluator = new HSSFFormulaEvaluator((HSSFWorkbook)workbook);
//输出单元格的内容
        //获取类型进行便利
        int cellType = cell.getCellType();
switch (cellType){
case Cell.CELL_TYPE_FORMULA://获取公式
                String cellFormula = cell.getCellFormula();
                System.out.println(cellFormula);
//计算
                CellValue evaValue=formulaEvaluator.evaluate(cell);
                String cellValue = evaValue.formatAsString();
                System.out.println(cellValue);
//结束循环
                break;
        }
    }
}


这样就能计算出sheet直接的结果了

目录
相关文章
|
11月前
土方量的几种计算方法
土方量的几种计算方法
234 1
|
12月前
计算平均值
计算平均值
交流电路理论:峰值、平均值和RMS值的计算公式
除了频率和周期之外,AC 波形的一个关键属性是振幅,它表示交变波形的最大值,或者更广为人知的是峰值。
5839 0
交流电路理论:峰值、平均值和RMS值的计算公式
|
4月前
【Quant102】如何计算 N 日斜率
【Quant102】如何计算 N 日斜率
40 0
【Quant102】如何计算 N 日斜率
|
1月前
小波阈值公式
小波阈值公式
12 1
|
3月前
技术心得记录:可决系数R^2和方差膨胀因子VIF
技术心得记录:可决系数R^2和方差膨胀因子VIF
29 0
|
4月前
比例和比例定理
比例和比例定理
69 9
|
4月前
油管公式(全)
油管公式(全)
215 0
|
PyTorch 算法框架/工具
softmax是数字越大,概率越大,如何设置一种新的方法,数字越大,概率越小?
如果您希望在输入数字越大时获得更小的概率,可以使用 Softmax 函数的变体——Softmax 函数的负版本(Negative Softmax)。
300 0
softmax是数字越大,概率越大,如何设置一种新的方法,数字越大,概率越小?