NPOI之Excel——设置单元格背景色

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillPattern 为单元格背景色的填充样式。

NPOI Excel 单元格背景颜色设置方法:

1
2
3
4
5
6
ICellStyle style = workbook.CreateCellStyle();
style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
style.FillPattern = FillPattern.SolidForeground;
 
ICell cell = workbook.CreateSheet().CreateRow(0).CreateCell(0);
cell.CellStyle = style;

NPOI Excel 颜色对照表:

颜色测试Class名称short
    
 Test颜色Black8
 Test颜色Brown60
 Test颜色Olive_Green59
 Test颜色Dark_Green58
 Test颜色Dark_Teal56
 Test颜色Dark_Blue18
 Test颜色Indigo62
 Test颜色Grey_80_PERCENT63
 Test颜色Dark_Red16
 Test颜色Orange53
 Test颜色DARK_YELLOW19
 Test颜色Green17
 Test颜色Teal21
 Test颜色Blue12
 Test颜色Blue_Grey54
 Test颜色Grey_50_PERCENT23
 Test颜色Red10
 Test颜色LIGHT_ORANGE52
 Test颜色LIME50
 Test颜色SEA_GREEN57
 Test颜色AQUA49
 Test颜色LIGHT_BLUE48
 Test颜色VIOLET20
 Test颜色GREY_40_PERCENT55
 Test颜色Pink14
 Test颜色Gold51
 Test颜色Yellow13
 Test颜色BRIGHT_GREEN11
 Test颜色TURQUOISE15
 Test颜色SKY_BLUE40
 Test颜色Plum61
 Test颜色GREY_25_PERCENT22
 Test颜色Rose45
 Test颜色Tan47
 Test颜色LIGHT_YELLOW43
 Test颜色LIGHT_GREEN42
 Test颜色LIGHT_TURQUOISE41
 Test颜色PALE_BLUE44
 Test颜色LAVENDER46
 Test颜色White9
 Test颜色CORNFLOWER_BLUE24
 Test颜色LEMON_CHIFFON26
 Test颜色MAROON25
 Test颜色ORCHID28
 Test颜色CORAL29
 Test颜色ROYAL_BLUE30
 Test颜色LIGHT_CORNFLOWER_BLUE31
 Test颜色AUTOMATIC64

 

出处:https://www.cnblogs.com/Brainpan/p/5804167.html

 

如果NPOI系统中定义的颜色不够用,也可以自己定义颜色,具体方式参考:NPOI 自定义单元格背景颜色-Excel

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要读取合并单元的数据,需要使用 NPOI 库中的 CellRangeAddress 类来获取合并单元的范围,并在处理每个单元时判断它是否在合并单元范围内。以下是一个简单的示例代码: ```csharp using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; // 打开 Excel 文件 using (FileStream fs = new FileStream("test.xlsx", FileMode.Open, FileAccess.Read)) { XSSFWorkbook workbook = new XSSFWorkbook(fs); ISheet sheet = workbook.GetSheetAt(0); // 遍历所有行 for (int i = 0; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row == null) continue; // 遍历所有列 for (int j = 0; j < row.LastCellNum; j++) { ICell cell = row.GetCell(j); if (cell == null) continue; // 判断单元是否在合并单元范围内 bool isMerged = false; for (int k = 0; k < sheet.NumMergedRegions; k++) { CellRangeAddress range = sheet.GetMergedRegion(k); if (range.IsInRange(i, j)) { isMerged = true; break; } } // 如果单元在合并单元范围内,则获取合并单元的值 if (isMerged) { ICell firstCell = sheet.GetRow(range.FirstRow).GetCell(range.FirstColumn); Console.WriteLine(firstCell.ToString()); } else { Console.WriteLine(cell.ToString()); } } } } ``` 需要注意的是,由于合并单元可能会跨越多行或多列,因此在判断单元是否在合并单元范围内时需要使用 CellRangeAddress 类的 IsInRange 方法。此外,如果单元在合并单元范围内,则需要获取合并单元的第一个单元的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值