POI获取单元格背景颜色
来源:互联网 发布:四川省2017年度大数据 编辑:程序博客网 时间:2024/06/07 04:57
文章转载于: ttp://i2534.iteye.com/blog/830603
工作原因,需要使用poi来读取excel中的所有内容.
其他都还好说,就颜色是到目前为止最坑爹的,估计是当初写的时候只针对97-2003了,现在出来2007,搞得乱七八糟的.
通过自己查找源码,终于算是搞定了.
代码如下:
首先定义个颜色的bean
- public class ColorInfo{
- /**
- * 颜色的alpha值,此值控制了颜色的透明度
- */
- public int A;
- /**
- * 颜色的红分量值,Red
- */
- public int R;
- /**
- * 颜色的绿分量值,Green
- */
- public int G;
- /**
- * 颜色的蓝分量值,Blue
- */
- public int B;
- public int toRGB() {
- return this.R << 16 | this.G << 8 | this.B;
- }
- public java.awt.Color toAWTColor(){
- return new java.awt.Color(this.R,this.G,this.B,this.A);
- }
- public static ColorInfo fromARGB(int red, int green, int blue) {
- return new ColorInfo((int) 0xff, (int) red, (int) green, (int) blue);
- }
- public static ColorInfo fromARGB(int alpha, int red, int green, int blue) {
- return new ColorInfo(alpha, red, green, blue);
- }
- public ColorInfo(int a,int r, int g , int b ) {
- this.A = a;
- this.B = b;
- this.R = r;
- this.G = g;
- }
- }
转化工具
- /**
- * excel97中颜色转化为uof颜色
- *
- * @param color
- * 颜色序号
- * @return 颜色或者null
- */
- private static ColorInfo excel97Color2UOF(Workbook book, short color) {
- if (book instanceof HSSFWorkbook) {
- HSSFWorkbook hb = (HSSFWorkbook) book;
- HSSFColor hc = hb.getCustomPalette().getColor(color);
- ColorInfo ci = excelColor2UOF(hc);
- return ci;
- }
- return null;
- }
- /**
- * excel(包含97和2007)中颜色转化为uof颜色
- *
- * @param color
- * 颜色序号
- * @return 颜色或者null
- */
- private static ColorInfo excelColor2UOF(Color color) {
- if (color == null) {
- return null;
- }
- ColorInfo ci = null;
- if (color instanceof XSSFColor) {// .xlsx
- XSSFColor xc = (XSSFColor) color;
- byte[] b = xc.getRgb();
- if (b != null) {// 一定是argb
- ci = ColorInfo.fromARGB(b[0], b[1], b[2], b[3]);
- }
- } else if (color instanceof HSSFColor) {// .xls
- HSSFColor hc = (HSSFColor) color;
- short[] s = hc.getTriplet();// 一定是rgb
- if (s != null) {
- ci = ColorInfo.fromARGB(s[0], s[1], s[2]);
- }
- }
- return ci;
- }
获取单元格式样
- Workbook book = WorkbookFactory.create(new FileInputStream("G:\\Users\\lan\\Desktop\\Book1.xls"))
- Sheet eSheet = book.getSheetAt(i);// excel 工作表
- Row eRow = eSheet.getRow(r);
- Cell eCell = eRow.getCell(c);
- CellStyle eStyle = eCell.getCellStyle();
获取字体颜色
- Font eFont = book.getFontAt(eStyle.getFontIndex());
- // 字体颜色
- ColorInfo color = null;
- if (eFont instanceof XSSFFont) {
- XSSFFont f = (XSSFFont) eFont;
- color = excelColor2UOF(f.getXSSFColor());
- } else {
- color = excel97Color2UOF(book,eFont.getColor());
- }
获取单元格背景色
- // 背景色
- if (eStyle.getFillPattern() == CellStyle.SOLID_FOREGROUND) {
- ColorInfo bgColor = excelColor2UOF(style.getFillForegroundColorColor());
- }
获取边框线颜色
- //仅列出上边框线颜色
- ColorInfo ci = null;
- if (eStyle
- instanceof XSSFCellStyle) {// 2007
- XSSFCellStyle xs = (XSSFCellStyle) style;
- ci =excelColor2UOF(xs.getTopBorderXSSFColor());
- } else {
- ci = excel97Color2UOF(book, eStyle
- .getTopBorderColor());
- }
阅读全文
0 0
- POI获取单元格背景颜色
- POI 设置单元格背景颜色
- POI 设置单元格背景颜色
- POI 设置单元格背景颜色
- POI设置单元格背景颜色
- POI 设置单元格背景颜色(附图)
- POI之Excel自定义单元格背景颜色
- 关于如何获取GridView指定单元格背景颜色
- POI 获取单元格 内容
- POI获取单元格值
- html设置单元格背景颜色
- POI获取单元格的值
- POI生成excel文件,自定义单元格颜色
- POI生成excel文件,自定义单元格颜色
- POI生成excel文件,自定义单元格颜色
- Poi 操作excel 定义单元格颜色
- java POI实现Excel单元格填充颜色
- java POI实现Excel单元格自定义颜色
- 微信小程序页面跳转
- log4j配置mybatis打印sql
- excel逐列读取excel所有数据
- uva 540 Team Queue
- sizeof(数组名)和sizeof(指针)
- POI获取单元格背景颜色
- Java-在一组有序数组中进行查找指定数及对应下标,再插入指定数,最后删除指定数。
- 即时函数(Immediate Functions)
- django
- jquery Autocomplete 在ios上 中文兼容性问题
- cookie/session机制详解
- java 过滤数组(把数组里面元素相同的元素替换为0)
- 有规则存储数据
- 4. Median of Two Sorted Arrays