POI使用cell.getCellStyle()设置指定单元格颜色,但是其它没有指定的单元格也会变色
2024-10-19 06:20:35
HSSFCell cell = row.createCell((short)i);
cell.getCellStyle().setAlignment(HSSFCellStyle.ALIGN_RIGHT);
....
你可能发现创建后的excel文件所有的列都变成右对齐了...
翻了翻代码,还挺复杂,大意就是在创建的xls的时候会产生若干默认的ExtendedFormatRecord,这样在调用
row.createCell((short)i)创建普通的cell的时候,如果POI没有办法根据cell信息(i)找到对应的
ExtendedFormatRecord,则会返回固定的一个(at
0xF),这样在每次getCellStyle的时候返回的都是同一个style的reference. 所以对它的修改会影响整个xls文档.
(上面说的不严谨,仅供参考)
解决方法:
新建一个cellStyle,然后将原来的Style复制到新的style中,然后在这个新的style上进行操作。
//所以如果你需要修改某个cell的样式,如下
HSSFCell cell = row.createCell((short)i);
HSSFCellStyle cStyle = wb.createCellStyle();
//不直接使用getCellStyle(),用cloneStyleFrom就能实现保持原有样式
cStyle .cloneStyleFrom(cell.getCellStyle());
cStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
cell.setCellStyle(cStyle);
最新文章
- jQuery:实现网页的打印功能
- appium 常用api介绍(2)
- [iOS Animation]-CALayer 性能优化
- oracle查询每个表所占的空间
- keras初涉笔记【一】
- java web 读取数据库数据写入Excel返回浏览器下载
- js三元表达式
- (04) springboot 下的springMVC和jsp和mybatis
- Sql Server数据字典
- centos6升级glibc-2.14没有报错,但是验证没有升级成功的问题解决
- 【vue】vue +element 搭建项目,在使用InputNumber 计数器时遇到的问题
- Android组件化、模块化、插件化
- mybatis mapper配置
- element-ui Carousel 走马灯源码分析整理笔记(十一)
- nodejs模块——网络编程模块
- NOI1999 生日蛋糕
- React 使用 PropTypes 进行类型检查
- js requestAnimationFrame
- kylin构建cube优化
- 《python学习手册》第32章 异常基础
热门文章
- 【oracle】Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态---个人解决方案
- Vb.Net Xml文档格式化
- poj 2774 Long Long Message 后缀数组LCP理解
- 汽车之家, 比亚迪等成为开源数据库SSDB的用户
- 预告:准备开个坑,集中学习一下esp32模块
- 人生规划和GTD——“知”、“得”与“合”
- hibernate映射文件基础
- 简单的SQL Server在线查看和执行系统
- textarea中限制输入字符长度(实用版)
- EhCache 分布式缓存/缓存集群(转)