EasyExcel 导入计算公式导出展示字符串问题(SUM)

news2025/4/12 11:49:01

导出自定义表单 结果遇到 SUM函数 时 没有算出结果,直接展示的函数字符串

处理思路 拦截公式字符串 :

将对应的cell 设置 setCellFormula  字符串公式

然后cell类型设置为   CellType.FORMULA

重新配置 这样就解决了问题。

注意先设置CellFormula  然后设置 CellType (我把顺序搞反了,调试了很久

3这里用的是evaluateFormulaCell 而不是evaluateInCell 

原因evaluateInCell 导出的结果没函数计算式  

evaluateFormulaCell 导出结果有函数式

结果如下:

这里顺便给出 一个获取列表行求和转化工具

/**
 * @author lj
 * @title: CellCode
 * @projectName cloud
 * @date 2024/8/21 002110:46
 */
public class CellCodeUtil {
    /**
     * 行汇总求和   从1  开始
     * @param startIndex  开始的列表下标    从1  开始
     * @param endIndex  开始的结束列下标   从1  开始
     * @param row  行 从 1 开始
     * @return  =SUM(B5:D5)
     */
    public static String getRowSUN(int startIndex,int endIndex,int row){
        StringBuffer data = new StringBuffer("SUM(");
        data.append(excelColIndexToStr(startIndex) + row + ":");
        data.append(excelColIndexToStr(endIndex) + row + ")");
        return data.toString();
    }

    public static void main(String[] args) {
        System.out.println(getRowSUN(2,26,5));
        System.out.println(getColumnSUN(5,16,2));
    }
    /**
     * 列 汇总 求和  从1  开始
     * @param startIndex
     * @param endIndex
     * @param columnIndex  列表
     * @return
     */
    public static String getColumnSUN(int startIndex,int endIndex, int columnIndex){
        StringBuffer data = new StringBuffer("SUM(");
        data.append(excelColIndexToStr(columnIndex) + startIndex + ":");
        data.append(excelColIndexToStr(columnIndex) + endIndex + ")");
        return data.toString();
    }

    /**
     * 下标转列
     * @param columnIndex  从1 开始
     * @return
     */
    public static String excelColIndexToStr(int columnIndex) {
        if (columnIndex <= 0) {
            return null;
        }
        String columnStr = "";
        columnIndex--;
        do {
            if (columnStr.length() > 0) {
                columnIndex--;
            }
            columnStr = ((char) (columnIndex % 26 + (int) 'A')) + columnStr;
            columnIndex = (int) ((columnIndex - columnIndex % 26) / 26);
        } while (columnIndex > 0);
        return columnStr;
    }
}

测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2061619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物品租赁管理系统-押金预授权-原路退回系统-SAAS本地化及未来之窗行业应用跨平台架构

一、物品租赁管理必要性 经济角度 1. 降低成本 - 对于租赁方而言&#xff0c;无需一次性投入大量资金购买物品。比如&#xff0c;企业在项目初期&#xff0c;如果购买昂贵的设备&#xff0c;会占用大量流动资金&#xff0c;增加财务风险。而通过租赁&#xff0c;可以将固…

从0开始搭建一个SpringBoot项目(从环境配置到运行项目)

文章目录 环境配置JAVA环境配置MySQL数据库配置IDEA安装Navicat 15安装Maven配置 SpringBoot项目创建 环境配置 JAVA环境配置 JDK8下载&#xff1a; 官网下载CSDN下载网盘 安装JDK&#xff0c;一直下一步即可&#xff0c;注意安装的位置&#xff1a; 3. 配置环境变量 &…

R语言统计分析——回归中的异常观测值

参考资料&#xff1a;R语言实战【第2版】 一个全面的回归分析要覆盖对异常值的分析&#xff0c;包括离群点、高杠杆点和强影响点。这些数据点需要更深入的研究&#xff0c;因为它们在一定程度上与其他观点不同&#xff0c;可能对结果产生较大的负面影响。 1、离群点 离群点是指…

【MySQL 10】表的内外连接 (带思维导图)

文章目录 &#x1f308; 一、内连接⭐ 0. 准备工作⭐ 1. 隐式内连接⭐ 2. 显式内连接 &#x1f308; 二、外连接⭐ 0. 准备工作⭐ 1. 左外连接⭐ 2. 右外连接 &#x1f308; 一、内连接 内连接实际上就是利用 where 子句对两张表形成的笛卡儿积进行筛选&#xff0c;之前所有的…

git错误fatal: Unpack error, check server log

git错误fatal: Unpack error, check server log fatal: Unpack error, check server log error: remote unpack failed: error Missing tree xxxxxxxxxxxxxxxxxx 先执行 git fetch 命令&#xff0c;再push。 git拉取远程所有分支/添加远程仓库_git pull所有分支代码-CSDN博客…

SQL基础——MySQL的触发器、存储引擎、事务

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 一、MySQL的触发器 1.概述 介绍 触发器&#xff0c;就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段&#xff0c;但是触发器无需调用&…

StarRocks 存算分离 Compaction 原理

前言 StarRocks 中每次数据摄入都会生成一个新的数据版本&#xff0c;而查询时需要将所有版本数据进行合并才能获得一个正确的结果&#xff0c;如果历史数据版本太多&#xff0c;那么查询时需要读取的文件数也会很多&#xff0c;造成查询效率低下。因而 StarRocks 存在内部任务…

【电子通识】IPC-A-600中对验收标准的定义

在文章【电子通识】IPC-A-610标准对产品的四种验收条件都是什么意思&#xff1f;中我们讲到IPC-A-610标准&#xff08;电子组件的可接受性&#xff09;对于产品的四种验收条件。本文中我们同理讲一讲IPC-A-600中对验收标准的定义。 IPC-A-600文件中的多数示意图和照片同时表示每…

66 IPV4/6 OSPFV2/3 实操

一 网络括谱图 二 IPV6 一 华为IPV6地址的配置思路 1 全局上开启IPV6功能 # ipv6 # 2 在指定的接口上配置IPV6地址上的接口上配置IPV6地址 ipv6 enable 3 在接口上配置IPV6地址 ipv6 address 2001:1::254/64 脚本 # interface GigabitEthernet0/0/1 ipv6 enable ip add…

怎么快速定位bug?如何编写测试用例?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 作为一名测试人员如果连常见的系统问题都不知道如何分析&#xff0c;频繁将前端人员问题指派给后端人员&#xff0c;后端人员问题指派给前端人员&#xff0c;那么在…

set容器

基本概念 set容器只有键值&#xff0c;插入容器的时候自动根据键值排序&#xff0c;不允许有相同的键值set的迭代器是只读迭代器multiset特性及用法和set完全相同&#xff0c;唯一的差别就是在于他允许键值重复&#xff0c;set和multiset底层实现都是红黑树 常用操作&#xff…

nordic 蓝牙ble ble_hids_inp_rep_send发送数据采用缓存机制 发送失败后 检测到上一个发送完成再重新发前一个发送失败的数据

目录 1. 定义缓存结构 2. 初始化缓存队列 3. 添加数据到缓存队列 4. 发送数据函数 5. 初始化和事件处理 总结 在Nordic Semiconductor的BLE开发中,如果需要实现一种缓存机制来确保数据发送的可靠性,可以通过以下步骤实现: 定义缓存结构:用于存储待发送的数据。发送数据…

Axure设计之单选框教程(中继器)

在Axure RP中&#xff0c;通过结合中继器的强大功能&#xff0c;我们可以轻松实现动态加载的单选框列表&#xff0c;不仅可以根据数据自动调整选项宽度&#xff0c;还能实时更新选中状态。本教程将引导你完成一个使用中继器制作动态单选框列表的项目&#xff0c;包括案例分析、…

【论文阅读】DaST: Data-free Substitute Training for Adversarial Attacks(2020)

摘要 Machine learning models&#xff08;机器学习模型&#xff09; are vulnerable&#xff08;容易受到&#xff09; to adversarial examples&#xff08;对抗样本&#xff09;. For the black-box setting&#xff08;对于黑盒设置&#xff09;, current substitute atta…

Spring-MVC 结合 Swagger2

目录 一、引入依赖 二、创建Swagger配置类 三、修改Spring-MVC配置文件 四、在游览器打开 五、配置 Swagger 六、使用 Swagger 七、Swagger 的常用注解 ApiOperation() ApiModel ()、ApiModelProperty () 一、引入依赖 <dependency><groupId>io.springf…

Q*算法深度猜猜:从Q-learning优化到智能决策

Q*算法深度猜猜&#xff1a;从Q-learning优化到智能决策 引言 在强化学习&#xff08;Reinforcement Learning&#xff09;中&#xff0c;Q-learning算法作为一种无模型的学习方法&#xff0c;被广泛应用于解决各种决策优化问题。然而&#xff0c;尽管Q-learning在许多场景下…

游戏引擎详解——图片

图片 图片的格式 图片文件格式pngjpg 纹理压缩格式ETC1/2PVRTCASTC 图片的属性 图片属性解释分辨率宽高像素值&#xff08;pt&#xff09;&#xff0c;如&#xff1a;1024*1024位深度用来存储像素颜色的值&#xff0c;如RGBA8888&#xff0c;红黄蓝透明度4个维度每个8bit&…

在Windows Server 2012 R2上安装.NET Framework 3.5

在Windows Server 2012 R2上安装.NET Framework 3.5&#xff0c;可以按照以下步骤进行&#xff1a; 打开服务器管理器&#xff1a; 首先&#xff0c;登录到Windows Server 2012 R2的服务器。然后&#xff0c;打开“服务器管理器”。添加角色和功能&#xff1a; 在“服务器管理…

文件传送协议:FTP 的工作原理与应用

在网络环境中&#xff0c;将文件从一台计算机复制到另一台计算机是一项基本应用。文件传送协议&#xff08;File Transfer Protocol, FTP&#xff09; &#xff08;RFC959&#xff09;是互联网上使用最广泛的文件传输协议之一。FTP不仅提供交互式访问&#xff0c;允许用户指定文…

自然语言处理(NLP)大模型

自然语言处理&#xff08;NLP&#xff09;大模型 自然语言处理&#xff08;NLP&#xff09;领域中的一种重要技术&#xff0c;具有强大的语言理解和生成能力。以下是对NLP大模型的详细介绍&#xff1a; 一、定义与背景 NLP大模型是指通过大规模预训练和自监督学习技术构建的…