NPOI设定自定义单元格背景色

NPOI(Non-Profit Open Source Initiative)是一个开源的、非盈利性的项目,它提供了在.NET平台上处理Microsoft Office文档的功能。NPOI的主要目标是提供对Microsoft Office格式的读写能力,使开发人员能够在.NET应用程序中创建、读取和修改Word、Excel和PowerPoint等文档。

在使用NPOI设定Excel单元格背景色时,一般这样写:
 

private ICellStyle GetColorCellStyle(IWorkbook workbook) { 
    var cellStyle = GetCellStyle(workbook);
    // 设置背景色
    cellStyle.FillForegroundColor = IndexedColors.Aqua.Index;
    cellStyle.FillPattern = FillPattern.SolidForeground;
    return cellStyle;
}

但是受限于IndexedColors 提供的64种颜色可能无法达成我们的要求;

NPOI 为 XSSFCellStyle 提供了 SetFillForegroundColor(XSSFColor color) 的方法,让我们可以更灵活的设定单元格颜色。

代码如下:
 

/// <summary>
/// 取顏色
/// </summary>
/// <param name="htmlColor">#000000</param>
/// <returns></returns>
public static XSSFColor GetXSColor(string htmlColor)
{
    //低版本可用
    //return new XSSFColor(ColorTranslator.FromHtml(htmlColor));

    var color = ColorTranslator.FromHtml(htmlColor);
    return new XSSFColor(SixLabors.ImageSharp.Color.FromRgba(
        color.R,
        color.G,
        color.B,
        color.A
    ));
}

public static XSSFColor GetXSColor(System.Drawing.Color color) {
    return new XSSFColor(SixLabors.ImageSharp.Color.FromRgba(
        color.R,
        color.G,
        color.B,
        color.A
    ));
}


private ICellStyle GetColorCellStyle(IWorkbook workbook)
{
    XSSFCellStyle cellStyle = GetCellStyle(workbook) as XSSFCellStyle;
    // 设置背景色
    cellStyle.SetFillForegroundColor(NpoiHelper.GetXSColor("#99ccff"));
    cellStyle.FillPattern = FillPattern.SolidForeground;
    return cellStyle;
}

通过上述方案可以更灵活的设置单元格背景色

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值