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

embedded/2024/9/20 7:28:14/ 标签: java

导出自定义表单 结果遇到 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.ppmy.cn/embedded/101780.html

相关文章

Qt--信号signal与槽slot

信号&#xff08;Signal&#xff09;就是在特定情况下被发射的事件&#xff0c;例如 PushButton 最常见的信号就是鼠标 单击时发射的 clicked() 信号 槽&#xff08;Slot&#xff09;就是对信号响应的函数。槽就是一个函数&#xff0c;与一般的 C函数是一样的&#xff0c;可以…

二十二、处理字符串

在go语言中提供了strings包&#xff0c;提供了一套完备的字符串处理函数 1、将字符串转为大小写 s : "egg"val : strings.ToUpper(s)val strings.ToLower(s) 2、查找字符串 func main() {s : "egg"b : "this is my golang"fmt.Println(stri…

深入理解Java代理模式:从静态到动态的实现与应用

1、引言 在Java编程中&#xff0c;代理模式是一种常见的设计模式&#xff0c;用于在不修改原始代码的情况下&#xff0c;为对象添加额外的功能。代理模式有两种主要类型&#xff1a;静态代理和动态代理。本文将全面探讨这两种代理模式&#xff0c;包括它们的基本概念、实现方式…

JVM 性能分析 —— CMS 老年代并发 GC 触发条件与压缩式 GC (升级为 Full GC)触发条件

文章目录 CMS 触发老年代 GC 条件foreground collector&#xff08;前台收集&#xff09;background collector&#xff08;后台收集&#xff09; MSC&#xff08;mark-sweep-compact 压缩式 GC&#xff0c;等价于 Full GC&#xff09; CMS 触发老年代 GC 条件 CMS GC 在实现上…

JWT(JSON WEB TOKEN)详解

JWT&#xff08;JSON WEB TOKEN&#xff09;详解 文章目录 JWT&#xff08;JSON WEB TOKEN&#xff09;详解一、定义二、TOKNE的理解三、JWT的结构头部信息载荷签名 四、JWT的使用1. 添加依赖2. 生成JWT3. 解析JWT 一、定义 在Java中&#xff0c;JWT&#xff08;JSON Web Toke…

【STM32】RTT-Studio中HAL库开发教程五:UART的DMA应用

文章目录 一、简介1.关于DMA2.DMA使用场景3.DMA控制结构4.IDLE空闲中断5.实现方法 二、RTT配置三、串口收发流程四、完整代码五、测试验证 一、简介 1.关于DMA DMA(Direct Memory Access&#xff0c;直接存储器访问) 是所有现代电脑的重要特色&#xff0c;它允许不同速度的硬件…

Ubuntu上搭建Nginx环境

1. 软件包下载 nginx下载地址 下载linux版本的nginx&#xff0c;如图圈示 2. 将下载好的软件包上传至Linux服务器 假设上传到 /opt/nginx 目录,进入目录 cd /opt/nginx解压&#xff0c;根据版本自行修改版本号 tar zxvf nginx-1.16.0.tar.gz3.安装 安装编译所需的依赖&a…

从0到1,AI我来了- (6)AI应用-ComfyUI-I

满天飞的AI图片生成&#xff0c;是否激发了你的创作欲望&#xff1f; 我们来认识下Comfy&#xff0c;然后看下如何安装&#xff1f;再跑几个案例&#xff0c;看下comfyUI给我们带来的 ComfyUI 是什么&#xff1f;解决什么问题&#xff1f;如何安装&#xff0c;并使用ComfyUI …

大模型基础环境部署之一:安装 Nvidia 的驱动(详细实操版)

一、系统准备前置条件 1、更新软件包列表 sudo apt-get update2、安装编译工具和依赖项 sudo apt-get install gcc sudo apt-get install make sudo apt-get install g注&#xff1a;如果在安装 g 时遇到错误消息&#xff1a;“***you do not appear to have libc header fi…

【架构-25】K8S

什么是K8S&#xff1f; K8S 是 Kubernetes 的缩写&#xff0c;是一个开源的容器编排系统&#xff0c;用于自动化部署、扩展和管理容器化应用程序。 Kubernetes 具有以下主要特点和优势&#xff1a; 一、容器编排 自动化部署&#xff1a;可以自动将容器化的应用程序部署到集群中…

8月23日,每日信息差

第一、未来网络试验设施&#xff0c;是我国通信与信息领域首个国家重大科技基础设施。记者22日从在江苏举行的第八届未来网络发展大会上获悉&#xff0c;未来网络试验设施已正式建成。 第二、近日&#xff0c;百度智能云&知乎Tech Day技术交流会在北京举行。会上&#xff…

C++学习笔记——均值

一、题目描述 二、代码 #include <iostream> #include<iomanip>using namespace std;int main() {int n;cin >> n;double a[n];for(int i0;i<n;i){cin >> a[i];}double num 0;for(int i0;i<n;i){num num a[i];}double result num / n;cout &…

你是如何克服编程学习中的挫折感的?——从Bug中找到成长的契机

你是如何克服编程学习中的挫折感的&#xff1f; 从Bug中找到成长的契机 在编程的世界里&#xff0c;Bug 是不可避免的。无论是初学者还是经验丰富的开发者&#xff0c;都不可能完全避免 Bug 的出现。与其视 Bug 为敌人&#xff0c;不如将其看作成长的契机。每一个 Bug 的出现&…

【单片机】PIC单片机编程里前面的配置文件含义,xc.h的#pragma配置

#include <xc.h> #include <stdio.h> #include <stdlib.h> #include <string.h>/* CONFIG1 */ #pragma config FOSC = XT /* Oscillator Selection bits (XT oscillator: Crystal/resonator on R

【MySQL】MyISAM Static 与 MyISAM Dynamic 的区别

MyISAM Static 与 MyISAM Dynamic 的区别 1. 存储结构 MyISAM Static&#xff1a; 表的每一行大小是固定的。适合存储相同长度的数据类型&#xff0c;例如 CHAR 和 INT。由于行大小固定&#xff0c;存储效率较高。 CREATE TABLE static_table (id INT,name CHAR(50) -- 固定长…

Linux驱动入门实验班——DAC模块驱动(附百问网视频链接)

目录 前言 一、 SPI数据结构 1.SPI设备驱动 2.SPI设备数据结构 二 、函数接口 1.spi_sync_transfer 2.spi_register_driver 三、DAC 1.数据格式 2.数据结构 四、源码 驱动 应用 课程链接 前言 在这里主要记录学习韦东山老师Linux驱动人入门实验班的笔记&#xff0…

先从路径优化开始学习FastPlanner之B样条曲线平滑路径(一):从拉格朗日插值到B样条曲线

参考B站视频学习 注&#xff1a;我会列出学习他人的博客&#xff0c;但我不涉及具体推导&#xff0c;原理讲解&#xff0c;旨在于理解必须概念后写代码出效果。 给若干点如何获得一条平滑的曲线&#xff1f; 两个方法插值、拟合 插值要经过给定点&#xff0c;拟合不用经过。 经…

【mysql集群之组复制】

目录 一、 mysql高可用之组复制 (MGR)组复制单主和多主模式实现mysql的组复制 二、 mysql-router&#xff08;mysql路由&#xff09;实现负载均衡 一、 mysql高可用之组复制 (MGR) MySQL Group Replication(简称 MGR )是 MySQL 官方于 2016 年 12 月推出的一个全新的高可用与高…

嵌入式面经篇十——驱动开发

文章目录 前言一、驱动开发1、Linux 驱动程序的功能是什么?2、内核程序中申请内存使用什么函数?3、内核程序中申请内存和应用程序时申请内存有什么区别?4、自旋锁和信号量在互斥使用时需要注意什么?在中断服务程序里面的互斥是使用自旋锁还是信号量?5、驱动卸载异常可能是…

初识Linux · yum和vim

目录 前言&#xff1a; 1 yum 1.1 yum是什么&#xff1f; 1.2 Centos的生态和yum的本地配置 1.3 yum的相关操作 2 vim 前言&#xff1a; 我们学习Linux的时候&#xff0c;是有编程语言的基础的&#xff0c;那么呢&#xff0c;我们学习Linux的时候最迫切的就是希望能打印…