Создание новых цветов в JExcelApi - PullRequest
7 голосов
/ 02 декабря 2009

Я использую JExcelApi для генерации файлов XLS. Из jxl.format.Colour я вижу, как получить любой из цветов в «стандартной цветовой палитре Excel», но не как создать новый цвет (скажем, с учетом его RGB).

Но в самом Excel я могу выбрать любой цвет.

Я просто скучаю по нему? Есть ли способ в JExcelApi выбрать произвольный цвет? Я сейчас использую простой метод поиска ближайшего стандартного цвета, который в порядке, но не очень.

Ответы [ 4 ]

15 голосов
/ 08 января 2010

Способ переопределить индекс палитры в JExcel API - использовать метод [setColourRGB] [1] в доступной для записи книге. Например:

myWorkbook.setColourRGB(Colour.LIGHT_TURQUOISE2, 14, 67, 89);

если вы хотите изменить значение цвета в записи палитры, где по умолчанию есть второй светлый бирюзовый. Или, проще, в некоторых случаях, напрямую с указателем палитры:

myWorkbook.setColourRGB(Colour.getInternalColour(myPaletteIdx), 14, 67, 89);

Небольшое обновление: только индексы от 8 до 64 могут быть настроены в соответствии с комментарием внутри исходного кода jxl.biff.PaletteRecord.

[1]: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/write/WritableWorkbook.html#setColourRGB(jxl.format.Colour, int, int, int)

5 голосов
/ 01 апреля 2013
WritableCellFormat cellFormat = new WritableCellFormat();

Colour customColor = new Colour(10000, "1", 255, 0, 0){     
};

cellFormat.setBackground(customColor);  
writableCell.setCellFormat(cellFormat);
4 голосов
/ 22 декабря 2009

Версии Excel до 2007 года имеют стандартную палитру, и, учитывая, что используемый вами API не поддерживает формат 2007, вы можете застрять в этом. Причина, по которой вы можете выбрать любой цвет, который вы хотите, вероятно, в том, что вы используете новую версию Excel.

См. эту информацию на сайте Microsoft .

Я не понимаю, как можно переопределить стандартную цветовую палитру в используемом API, но в Apache POI (который также позволяет писать файлы Excel) вы можете: см. эту ссылку . По сути, вам нужно: назначить определенные стандартные цвета (зеленый и т. Д.) Вашим ячейкам; затем переопределите эти цвета любым нужным вам цветом.

0 голосов
/ 28 декабря 2009

Посмотрите на исходный код Color Class JXL

http://www.docjar.com/html/api/jxl/format/Colour.java.html

и jExcel его с открытым исходным кодом:)

...