NPOI 自定義單元格背景顏色 Excel

2022-01-22 14:28:37 字數 3269 閱讀 3419

npoi針對office2003使用hssfworkbook,對於offce2007及以上使用xssfworkbook;今天我以hssfworkbook自定義顏色為例說明,office2007的未研究呢

在npoi中預設的顏色類是hssfcolor,它內建的顏色有幾十種供我們選擇,如果不夠怎麼辦,不能修改底層的hssfcolor類;

大概解決思路:

1、將顏色的rgb值新增進調色盤hssfpalette中

2、呼叫hssfpalette中findcolor方法獲取hssfcolor例項

3、在需要使用顏色的地方使用hssfcolor的indexed屬性獲取index值(npoi.dll版本不同,也可能是getindex方法節能index值)

第一步:將顏色的rgb值新增進調色盤hssfpalette

hssfworkbook hssfworkbook = new hssfworkbook();//工作簿例項

hssfpalette palette = hssfworkbook.getcustompalette(); //調色盤例項

palette.setcoloratindex((short)8 ,(short)184,(short)204,(short)228); 

引數解析

第乙個引數:設定調色盤新增顏色的編號,自已設定即可;取值範圍8-64

第二、第三、第四個引數,組成rgb值

這裡還有一點需要注意,如何去找到相應的rgb值呢,如果去用肉眼去找到匹配的太難;

客戶可能給某個模板,模板中自帶背景色,我們如何找到這個前景色的rgb值呢,通過以下方式

第二步:呼叫hssfpalette中findcolor方法獲取hssfcolor例項

hssfcolor hssfcolor = palette.findcolor((short)184,(short)204,(short)228);

第一步中自定義設定的rgb值,直接複製過來使用;通過findcolor直接找到hssfcolor例項

第三步:設定具體物件顏色

//建立乙個單元格(具體網上查查,本次不做重點講解)

isheet sheet = hssfworkbook.getsheetat(0);

irow row = sheet.createrow(0);

icell cell = row.createcell(0);

//設定單元格顏色

icellstyle cellstyle= hssfworkbook.createcellstyle();

cellstyle.fillpattern = fillpattern.solidforeground; 老版本可能這樣寫fillpatterntype.solid_foreground;

cellstyle.fillforegroundcolor = hssfcolor.indexed;

cell.cellstyle = cellstyle;//設定

npoi針對office2003使用hssfworkbook,對於offce2007及以上使用xssfworkbook;今天我以hssfworkbook自定義顏色為例說明,office2007的未研究呢

在npoi中預設的顏色類是hssfcolor,它內建的顏色有幾十種供我們選擇,如果不夠怎麼辦,不能修改底層的hssfcolor類;

大概解決思路:

1、將顏色的rgb值新增進調色盤hssfpalette中

2、呼叫hssfpalette中findcolor方法獲取hssfcolor例項

3、在需要使用顏色的地方使用hssfcolor的indexed屬性獲取index值(npoi.dll版本不同,也可能是getindex方法節能index值)

第一步:將顏色的rgb值新增進調色盤hssfpalette

hssfworkbook hssfworkbook = new hssfworkbook();//工作簿例項

hssfpalette palette = hssfworkbook.getcustompalette(); //調色盤例項

palette.setcoloratindex((short)8 ,(short)184,(short)204,(short)228); 

引數解析

第乙個引數:設定調色盤新增顏色的編號,自已設定即可;取值範圍8-64

第二、第三、第四個引數,組成rgb值

這裡還有一點需要注意,如何去找到相應的rgb值呢,如果去用肉眼去找到匹配的太難;

客戶可能給某個模板,模板中自帶背景色,我們如何找到這個前景色的rgb值呢,通過以下方式

第二步:呼叫hssfpalette中findcolor方法獲取hssfcolor例項

hssfcolor hssfcolor = palette.findcolor((short)184,(short)204,(short)228);

第一步中自定義設定的rgb值,直接複製過來使用;通過findcolor直接找到hssfcolor例項

第三步:設定具體物件顏色

//建立乙個單元格(具體網上查查,本次不做重點講解)

isheet sheet = hssfworkbook.getsheetat(0);

irow row = sheet.createrow(0);

icell cell = row.createcell(0);

//設定單元格顏色

icellstyle cellstyle= hssfworkbook.createcellstyle();

cellstyle.fillpattern = fillpattern.solidforeground; 老版本可能這樣寫fillpatterntype.solid_foreground;

cellstyle.fillforegroundcolor = hssfcolor.indexed;

cell.cellstyle = cellstyle;//設定

NPOI自定義單元格背景顏色

經常在npoi群裡聊天時發現有人在問npoi設定單元格背景顏色的問題,而tony qu大神的部落格裡沒有相關教程,剛好最近在做專案時研究了一下這一塊,在這裡總結一下。在npoi中預設的顏色類是hssfcolor,如果要使用npoi中的顏色就必須想辦法轉化為hssfcolor。分析了一下原 hssfc...

NPOI自定義單元格背景顏色

經常在npoi群裡聊天時發現有人在問npoi設定單元格背景顏色的問題,而tony qu大神的部落格裡沒有相關教程,剛好最近在做專案時研究了一下這一塊,在這裡總結一下。在npoi中預設的顏色類是hssfcolor,如果要使用npoi中的顏色就必須想辦法轉化為hssfcolor。分析了一下原 hssfc...

NPOI 自定義單元格背景顏色 Excel

npoi針對office2003使用hssfworkbook,對於offce2007及以上使用xssfworkbook 今天我以hssfworkbook自定義顏色為例說明,office2007的未研究呢 在npoi中預設的顏色類是hssfcolor,它內建的顏色有幾十種供我們選擇,如果不夠怎麼辦,不...