博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POI使用cell.getCellStyle()设置指定单元格颜色,但是其它没有指定的单元格也会变色...
阅读量:6224 次
发布时间:2019-06-21

本文共 751 字,大约阅读时间需要 2 分钟。

   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); 

 

转载地址:http://veuna.baihongyu.com/

你可能感兴趣的文章
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>
我的友情链接
查看>>
ToRPC:一个双向RPC的Python实现
查看>>
我的友情链接
查看>>
nginx在reload时候报错invalid PID number
查看>>
神经网络和深度学习-第二周神经网络基础-第二节:Logistic回归
查看>>
Myeclipse代码提示及如何设置自动提示
查看>>
c/c++中保留两位有效数字
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>