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

目录
相关文章
土方量的几种计算方法
土方量的几种计算方法
287 1
交流电路理论:峰值、平均值和RMS值的计算公式
除了频率和周期之外,AC 波形的一个关键属性是振幅,它表示交变波形的最大值,或者更广为人知的是峰值。
7742 0
交流电路理论:峰值、平均值和RMS值的计算公式
|
1月前
计算标准偏差
【10月更文挑战第30天】计算标准偏差。
42 3
|
4月前
小波阈值公式
小波阈值公式
25 1
|
7月前
比例和比例定理
比例和比例定理
184 9
|
7月前
919: 我们被平均了
919: 我们被平均了
|
7月前
油管公式(全)
油管公式(全)
3324 0
HIMA 984865165 反映了分数带宽与频率增加的对数
HIMA 984865165 反映了分数带宽与频率增加的对数
HIMA 984865165 反映了分数带宽与频率增加的对数
HIMA K9203 计算满足的最低采样速率抽样定理
HIMA K9203 计算满足的最低采样速率抽样定理
HIMA K9203 计算满足的最低采样速率抽样定理