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

目录
相关文章
|
数据采集 SQL 存储
DataWorks数据质量介绍及实践 | 《一站式大数据开发治理DataWorks使用宝典》
数据质量问题虽然从数据工程师的角度来看是个简单问题,但是从业务的角度来看是个很严重的问题。所以数据质量是数据开发和治理全生命周期中,非常重要的一个环节。在DataWorks产品版图里,数据质量也是非常重要的模块之一。
4781 0
DataWorks数据质量介绍及实践 | 《一站式大数据开发治理DataWorks使用宝典》
|
存储 缓存 弹性计算
2024年阿里云最便宜云服务器出炉:61元、165元、99元、199元
2024年截止目前阿里云最便宜的云服务器已经出炉,轻量应用服务器2核2G3M带宽61元1年、2核4G4M带宽165元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。除此之外,还有幻兽帕鲁Palworld专用服务器4核16G10M带宽只要26.52元/1个月、79.56元/3个月、149.00元/6个月,8核32G10M带宽只要90.60元/1个月、271.80元/3个月。本文为大家分享2024年阿里云最便宜的各个云服务器。
8584 4
2024年阿里云最便宜云服务器出炉:61元、165元、99元、199元
|
存储 前端开发 Java
spring boot 实现Minio分片上传
spring boot 实现Minio分片上传
1091 1
|
前端开发 Java 文件存储
JAVA 文件上传 和 下载
文件上传,也称为upload,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。
|
消息中间件 数据安全/隐私保护
RabbitMQ 清除全部队列及消息
安装RabbitMQ后可访问:http://{rabbitmq安装IP}:15672使用(默认的是帐号guest,密码guest。此账号只能在安装RabbitMQ的机器上登录,无法远程访问登录。) 远程访问登录,可以使用自己创建的帐号,给与对应的管理员权限即可。
1404 0
|
easyexcel Java
EasyExcel模板填充
EasyExcel模板填充
665 1
|
9月前
|
人工智能 安全 调度
《鸿蒙NEXT端云垂直整合架构——算力协同调度的智慧引擎》
鸿蒙NEXT通过创新的端云垂直整合架构,实现硬件与云端深度融合,支持高效的算力协同调度。该架构具备智能的算力感知与分配能力,能根据任务需求灵活调配端侧和云端资源,确保实时性和高性能。同时,端云协同的模型训练与优化机制加快了模型迭代,提升了性能。此外,星盾安全架构保障了数据传输和算力调度的安全可靠性。这不仅为用户带来智能、流畅的体验,也为开发者提供了高效开发环境,推动AI技术在鸿蒙生态中的广泛应用。
290 18
|
Ubuntu Linux 网络安全
在Linux上安装软件有多种方法
在Linux上安装软件有多种方法
481 64
|
缓存 NoSQL Redis
关于redis使用@Cacheable注解redis中不生效问题完美解决
关于redis使用@Cacheable注解redis中不生效问题完美解决
971 118
|
消息中间件 关系型数据库 MySQL
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
352 1