JAVA POI 自定義顏色


JAVA  POI 中使用顏色的類叫:  HSSFColor, 它默認提供了幾十種常用的顏色,如BLANK; BLUE等, 且許多時候都是使用HSSFColor的index屬性值(如 HSSFColor.BLUE.index) ;


但在實際應用中, 這些已經定義的顏色並不能滿足需求(如客戶給你一個RGB顏色值255,204,153; 並要求導出的Excel中使用這個顏色).

我們需要HSSFPalette 來幫忙, (調用HSSFWorkbook的 getCustomPalette()方法獲取該對象)

使用HSSFPalette的前提條件: 必須使用同一個HSSFWorkbook對象.


HSSFPalette 提供了兩種方式來自定義顏色:

    1, 修改已經存在的顏色對象的RGB值

       代碼如下,將ORANGE的顏色值修改爲(255,204,153)

HSSFPalette customPalette = workbook.getCustomPalette();
customPalette.setColorAtIndex(HSSFColor.ORANGE.index, (byte) 255, (byte) 204, (byte) 153);
      在修改後,再設置顏色爲ORANGE時,將使用修改後的顏色值.


    2, 通過RGB值添加一個顏色(有一定的限制)

        代碼如下, 添加一個顏色(153,204,255),返回一個HSSFColor對象.

        HSSFPalette customPalette = workbook.getCustomPalette();
        HSSFColor newColor = customPalette.addColor((byte) 153, (byte) 204, (byte) 255);
            這樣就得到新的顏色對象newColor,可使用之.

            (第2種方法的限制是在 使用時必須要有newColor對象的引用才行,而第1種方式則沒這限制)


HSSFPalette除了提供添加(或修改)顏色值方法以外, 還提供了搜索相似顏色的方法findSimilarColor(),可根據一個RGB值來得到近似的顏色值.


參考:  http://ljhzzyx.blog.163.com/blog/static/38380312200972614553129/


發佈了57 篇原創文章 · 獲贊 102 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章