poi处理excel文件出现单元格样式太多的问题

2023-10-09 07:50

本文主要是介绍poi处理excel文件出现单元格样式太多的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:项目运行一段时间后,同事反馈说excel的单元格样式没有了,我心想怎么可能呢,结果把线上的文件拿出来一打开,提示恢复工作簿内容。如图:

马虎造成poi处理excel文件出现单元格样式太多的问题

文件打开提示

接着点击“是”进入

马虎造成poi处理excel文件出现单元格样式太多的问题

单元格样式丢失

样式全部丢失了。什么情况,马上本地写了测试的执行看看,发现当行数小于5700行(这是本人测试的,可能别人是别的行数)时,是正常的,但是一超过这个行数立马样式消失。网上百度了一下,说是我创建的style太多了,一看代码,的确是,因为我style都是在循环里面创建的。应该拿到循环外面统一创建。

马虎造成poi处理excel文件出现单元格样式太多的问题

创建样式

从我截取的代码中可以看得出,我这里肯定处理的不对,造成频繁的创建style,修改办法是创建HashMap进行缓存,用到的时候在这里拿取。

马虎造成poi处理excel文件出现单元格样式太多的问题

将必用的样式缓存在map中

马虎造成poi处理excel文件出现单元格样式太多的问题

用时通过key来获取

修改成这样,此问题解决了。如图:

马虎造成poi处理excel文件出现单元格样式太多的问题

样式不消失了

多循环些,看看数据量1w行时

马虎造成poi处理excel文件出现单元格样式太多的问题

1w行

仍然没有出现问题。

总结:

  1. 因为excel不能支持太多的样式,而且项目中也没有很多样式,造成样式多,完全是因为在for循环中,创建了一些重复的样式造成的。
  2. 还有这样频繁的创建样式也造成了性能问题。

这篇关于poi处理excel文件出现单元格样式太多的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171394

相关文章

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

解决java.lang.NullPointerException问题(空指针异常)

《解决java.lang.NullPointerException问题(空指针异常)》本文详细介绍了Java中的NullPointerException异常及其常见原因,包括对象引用为null、数组元... 目录Java.lang.NullPointerException(空指针异常)NullPointer

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...