poi自定义颜色设置(转)
原文链接 http://javapolo.iteye.com/blog/1604501
最近在项目的开发中使用到了apache poi,该组件可以让我们方便的操作excell,该工具非常容易上手,但使用过程中也发现了一些问题,就是当你操作excell文档为其设置颜色时,该文档所能设的颜色最多只能是56种(poi自身提供的系统颜色,例如红,黄等,我们可以通过对已有的色块进行调色达到我们自定义颜色的目的,在PaletteRecord类里面初始化),也就是说poi加载到内存之后,它所维护的只有56块色块,且系统只有一份,所以在一个excell生成过程中,它必须锁定该所有的调色块,待该excell文件生成之后,才能将该资源释放,供下个线程使用,而且在设置excell颜色过程中我们必须标识哪些调色块已经使用,哪些没用,这样我们才能防止调好的背景颜色被覆盖,在poi中自定义颜色一般通过HSSFPalette(调色板)对象调用setColorAtIndex(short index, byte red, byte green, byte blue)方法,
/**
* @param 设置颜色块的索引,从 0x8 到 0x40
这个通过代码可以得到:
@Test
public void Test01(){
Map map=HSSFColor.getIndexHash();
Set<Map.Entry<Integer,HSSFColor>> set = map.entrySet();
for(Map.Entry<Integer,HSSFColor> entry:set){
System.out.print(entry.getValue().getIndex()+"\t");
}
}
* @param red 红色, between 0 and 255 inclusive
* @param green 绿色, between 0 and 255 inclusive
* @param blue 蓝色, between 0 and 255 inclusive
*/
public void setColorAtIndex(short index, byte red, byte green, byte blue)
{
_palette.setColor(index, red, green, blue);
}
通过该方法对调色块进行调色,调完色后,则该调色块对应的颜色就是通过最新的rgb值调出来的,下一步,例如你要设某单元格的背景色,你只要调用样式style.setFillForegroundColor(index)就可以了,在控制调色块的使用情况时可以采用List<Map>的集合来实现,通过Map<索引,使用情况>来标识一个色块的使用情况,
public class ColorIncreaseUtil {
public static int colorindex;
public static Map<String, Integer> maps;
/**
* 开始颜色索引
*/
public static void beginColorIndex() {
maps = new HashMap<String, Integer>();
for (int i = 8; i <= 64; i++) {
maps.put(i + "", 0);
}
colorindex = 8;
}
/**
* 颜色索引值增加
*/
public static short getColorIndexIncrease() {
if (colorindex > 64)
return 0;
colorindex = colorindex + 1;
while (maps.get("" + (colorindex)).intValue() == 1) {
colorindex = colorindex + 1;
}
return (short) colorindex;
}
/**
* 设置摸个颜色板已经占用
*
* @param index
*/
public static void setFlag(short index) {
maps.put(index + "", 1);
}
通过这样设置,我们就可以方便的定义我们的颜色了。
poi自定义颜色设置(转)的更多相关文章
- POI 怎么设置Excel整列的CellStyle啊
POI 怎么设置Excel整列的CellStyle啊,而不是循环每个Cell.因为现在是生成Excel模板,不知道客户会输入多少行. 问题补充: 指尖言 写道 好像没有这个方法,CellStyle是C ...
- POI中设置Excel单元格格式样式(居中,字体,边框等)
创建sheet什么的就不多说了,直接进入正题 HSSFCellStyle cellStyle = wb.createCellStyle(); 一.设置背景色: cellStyle.setFillF ...
- POI中设置Excel单元格格式
引用:http://apps.hi.baidu.com/share/detail/17249059 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWork ...
- POI HSSFCellStyle 设置 Excel 单元格样式
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...
- poi excel 设置边框字体行高行宽
final HSSFSheet sheet = wb.createSheet(sheetName + "_" + n); System.out.println("s ...
- java操作Excel的poi 格式设置
格式设置 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi. ...
- Apache POI环境设置
本章将指导完成Apache POI在Windows和Linux系统为基础的设置过程. Apache POI可以轻松地安装和集成,下面没有任何复杂的设置过程,通过几个简单步骤,目前Java环境,用户管理 ...
- POI样式设置详细解析
````````由于看到网上对poi做报告合成的内容不是很全面, ````````自己最近又有新的需求, 作为勉励, 会慢慢补充详细的样式设置, 希望也能帮到各位 设置段落方向 (默认是纵向, 这里可 ...
- POI颜色设置
package com.java.connect.poi; import java.io.FileOutputStream; import java.io.IOException; import or ...
随机推荐
- 注册tomcat为windows服务(转载)
第一部分 应用场景 需要服务器上Tomcat不显示启动窗口 需要服务器上Tomcat开机自启动 ... 第二部分 配置过程 一.修改配置文件 1 {Tomcat_HOME}/bin/service.b ...
- SQL基础二
一.SQL SELECT 语句 SELECT 语句用于从表中选取数据.结果被存储在一个结果表中(称为结果集). SQL SELECT 语法: SELECT 列名称 FROM 表名称 以及: SELEC ...
- 练Focus T25必看!T25课表 视频与成功案例汇总
练Focus T25必看!T25课表 视频与成功案例汇总! [复制链接] http://jianfei.39.net/thread-3645799-1.html 小西i减肥 ...
- tomcat web工程 jar包冲突解决方法
目前在部署工程时,遇到了一个问题,报错信息如下: See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet ...
- 数据结构:JAVA实现二叉查找树
数据结构:JAVA实现二叉查找树 写在前面 二叉查找树(搜索树)是一种能将链表插入的灵活性与有序数组查找的高效性结合在一起的一种数据结构. 观察二叉查找树,我们发现任何一个节点大于左子节点且小于其右子 ...
- dogo 官方翻译 Ajax with dojo/request
require(["dojo/request"], function(request){ request("helloworld.txt").then( fun ...
- grid布局笔记
1.应用 display: grid 的元素.这是所有网格项(Grid Items)的直接父级元素.即容器 2.网格容器(Grid Container)的子元素(直接子元素). 3.注意:在 网格容器 ...
- PHP-FPM 慢执行日志、网站隔离配置
慢执行日志 1.配置文件下打开慢执行日志 vim /usr/local/php/etc/php-fpm.conf # 慢执行日志路径 slowlog = /path/to/slow.log # 设置超 ...
- pycharm中创建并设置docker解释器
在Windows上使用Docker的其中一个目的是使其与PyCharm结合,形成Python代码的解释器,避免重复的Python解释环境搭建的问题,同时保持Windows开发环境和部署环境所用的Pyt ...
- MySQL5.6一键部署
# 快速部署单节点MySQL脚本# 执行方式:将MySQL包,my3302.cnf配置文件,dbtool脚本文件放到一个目录下.然后按照脚本执行就可以.配置文件提前修改好.文章最后附上my.cnf配置 ...