Jexcelapiで新しい色を作る
-
11-09-2019 - |
質問
XLSファイルを生成するためにjexcelapiを使用しています。から jxl.format.colour, 、「標準のExcelカラーパレット」で色を取得する方法がわかりますが、新しい色を作成する方法は見られません(たとえば、RGBを与えられた場合)。
しかし、Excel自体では、どんな色を選ぶことができます。
私はそれを見逃していますか? jexcelapiに任意の色を選択する方法はありますか?私は今、シンプルな検索で最も密接な標準色の方法を使用していますが、それは大丈夫ですが、素晴らしいことではありません。
解決
2007年以前のExcelバージョンには標準のパレットがあり、使用しているAPIが2007年の形式をサポートしていないことを考えると、それに固執する可能性があります。必要な色を選択できる理由は、おそらくExcelの新しいバージョンを使用しているためです。
使用しているAPIで標準のカラーパレットをどのようにオーバーライドできるかわかりませんが、Apache Poi(Excelファイルも記述できます)では次のことができます。 このリンク. 。基本的に、そこで行う必要があるのは次のとおりです。特定の標準色(緑など)をセルに割り当てます。それから オーバーライド 必要なカスタム色のこれらの色。
他のヒント
Jexcel APIのパレットインデックスをオーバーライドする方法は、Writable Workbookでメソッド[SetColourRGB] [1]を使用することです。例えば:
myWorkbook.setColourRGB(Colour.LIGHT_TURQUOISE2, 14, 67, 89);
デフォルトで2番目のライトターコイズがあるパレットエントリの色値を変更する場合。または、場合によってはより簡単に、パレットインデックスを直接使用します。
myWorkbook.setColourRGB(Colour.getInternalColour(myPaletteIdx), 14, 67, 89);
小さな更新:jxl.biff.paletterecordのソースコード内のコメントに従って、8〜64のインデックスのみをカスタマイズできます。
[1]: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/write/writableworkbook.html#setcolourrgb(jxl.format.colour, 、int、int、int)
WritableCellFormat cellFormat = new WritableCellFormat();
Colour customColor = new Colour(10000, "1", 255, 0, 0){
};
cellFormat.setBackground(customColor);
writableCell.setCellFormat(cellFormat);