Apache POI: индексированный цвет из цветового ввода AWT - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь повторить шрифт и цвет из заданных java.awt.Color и java.awt.Font в моем файле Excel, созданном с использованием apache POI.Последнее работает, однако установка цвета не работает: хотя мои шрифты в Excel окрашены в зеленый цвет, если они установлены напрямую, поэтому с помощью IndexedColors.GREEN.getIndex() использование java.awt.Color для создания XSSFColor не работает (см. Код ниже).Как получить (ближайший) IndexedColor или даже лучше использовать исходное значение java.awt.Color в моем шрифте POI?

Текущий фрагмент кода:

            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)

1 Ответ

0 голосов
/ 23 ноября 2018

XSSFWorkbook # createFont возвращает XSSFFont (реализация Font), и этот класс XSSFFont имеет метод setColor (XSSFColor).

...