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


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值呢,如果去用肉眼去找到匹配的太難;

可以下載調色板來拾取,也可以通過Excel固定模板去取,本次我講解通過Excel去取顏色

客戶可能給某個模板,模板中自帶背景色,我們如何找到這個前景色的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;//設置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM