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直接的结果了

目录
相关文章
土方量的几种计算方法
土方量的几种计算方法
256 1
交流电路理论:峰值、平均值和RMS值的计算公式
除了频率和周期之外,AC 波形的一个关键属性是振幅,它表示交变波形的最大值,或者更广为人知的是峰值。
7008 0
交流电路理论:峰值、平均值和RMS值的计算公式
|
12天前
计算标准偏差
【10月更文挑战第30天】计算标准偏差。
25 3
|
3月前
小波阈值公式
小波阈值公式
17 1
|
6月前
比例和比例定理
比例和比例定理
118 9
|
6月前
油管公式(全)
油管公式(全)
1452 0
|
PyTorch 算法框架/工具
softmax是数字越大,概率越大,如何设置一种新的方法,数字越大,概率越小?
如果您希望在输入数字越大时获得更小的概率,可以使用 Softmax 函数的变体——Softmax 函数的负版本(Negative Softmax)。
337 0
softmax是数字越大,概率越大,如何设置一种新的方法,数字越大,概率越小?
|
测试技术
L1-4 调和平均 (10分)
L1-4 调和平均 题解
|
测试技术
L1-068 调和平均 (10 分)
L1-068 调和平均 (10 分)
211 0