Apache POI:来自 AWT 颜色输入的索引颜色
Apache POI: Indexed Color from AWT Color input
我正在尝试从使用 apache POI 创建的 Excel 文件中的给定 java.awt.Color
和 java.awt.Font
复制字体和颜色。后者有效,但是设置颜色不起作用:虽然我在 Excel 中的字体在使用 IndexedColors.GREEN.getIndex()
直接设置时是绿色的,但使用 java.awt.Color
创建 XSSFColor
不起作用(见下面的代码)。我如何在我的 POI 字体中获得(最接近的)IndexedColor
甚至更好地使用 java.awt.Color
的原始值?
当前代码片段:
Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work
font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());
(Apache POI 3.17)
XSSFWorkbook#createFont returns XSSFFont(字体的一个实现)和这个 XSSFFont class 有一个 setColor(XSSFColor) 方法。
我正在尝试从使用 apache POI 创建的 Excel 文件中的给定 java.awt.Color
和 java.awt.Font
复制字体和颜色。后者有效,但是设置颜色不起作用:虽然我在 Excel 中的字体在使用 IndexedColors.GREEN.getIndex()
直接设置时是绿色的,但使用 java.awt.Color
创建 XSSFColor
不起作用(见下面的代码)。我如何在我的 POI 字体中获得(最接近的)IndexedColor
甚至更好地使用 java.awt.Color
的原始值?
当前代码片段:
Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work
font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());
(Apache POI 3.17)
XSSFWorkbook#createFont returns XSSFFont(字体的一个实现)和这个 XSSFFont class 有一个 setColor(XSSFColor) 方法。