使用POI获取xlsx文件的RGB问题

时间:2019-03-05 15:51:12

标签: excel apache-poi

我正在使用XLSX工作表,所以我正在使用XSSF实例。但是,当我尝试获取单元格中某个字体的RGB值时,对于具有默认字体颜色的某些字体,我会得到NULL,而对于默认字体颜色,某些RGB值(通常为0,就可以了)。这种一致性破坏了我查找实际上没有默认字体颜色的单元格的逻辑,换句话说,我的目标是找到字体颜色不是默认字体的单元格。

这是我正在使用的代码段

byte[] stdbyte = { 0, 0,
                                0 }; /* setting standard byte value as 0 for default RGB color as black */

Cell secondcell = row.getCell(1);
                        Cell thirdcell = row.getCell(2);
boolean flag1 = false;
                        XSSFCellStyle cs1 = (XSSFCellStyle) secondcell.getCellStyle();
                        XSSFFont font1 = cs1.getFont();
                        XSSFColor color1 = font1.getXSSFColor();
                        if (null != color1) {
                            byte[] secondcellRGB = color1.getRGB();
                            flag1 = Arrays.equals(stdbyte, secondcellRGB);
                        }

                        boolean flag2 = false;
                        if(null!=thirdcell) {
                        XSSFCellStyle cs2 = (XSSFCellStyle) thirdcell.getCellStyle();
                        XSSFFont font2 = cs2.getFont();
                        XSSFColor color2 = font2.getXSSFColor();
                        if (null != color2) {
                            byte[] thirdcellRGB = color2.getRGB();
                            flag2 = Arrays.equals(stdbyte, thirdcellRGB);
                        }
                        }

我做了空检查,但是正如我所说的,从getXSSFColor方法返回默认字体的颜色是不一致的。

如果有好的解决方案,请提供帮助。

0 个答案:

没有答案