Вопрос

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

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

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

Это было полезно?

Решение

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

Видеть эта информация на сайте Microsoft.

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

Другие советы

Способ переопределить индекс палитры в API JExcel — использовать метод [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, интервал, интервал, интервал)

WritableCellFormat cellFormat = new WritableCellFormat();

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

cellFormat.setBackground(customColor);  
writableCell.setCellFormat(cellFormat);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top