C# NPOI:更改单元格中某些(不是全部)文本的字体颜色

C# NPOI:更改单元格中某些(不是全部)文本的字体颜色,c#,npoi,C#,Npoi,在使用C#NPOI时,是否有办法仅更改单元格中部分文本的字体颜色?我知道您可以更改整个单元格的字体颜色。但我只想更改该单元格中最后4个字符的颜色 我知道在VBA中有一种方法可以做到这一点: 但是,我看不到使用NPOI做同样事情的方法,例如DotNetCore.NPOI: var newFile = @"newbook.core.xlsx"; using (var fs = new FileStream(newFile, FileMode.Create, FileAccess

在使用C#NPOI时,是否有办法仅更改单元格中部分文本的字体颜色?我知道您可以更改整个单元格的字体颜色。但我只想更改该单元格中最后4个字符的颜色

我知道在VBA中有一种方法可以做到这一点:


但是,我看不到使用NPOI做同样事情的方法,例如DotNetCore.NPOI:

var newFile = @"newbook.core.xlsx";
using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
{
    var workbook = new XSSFWorkbook();
    var sheet = workbook.CreateSheet("Sheet1");
    var rowIndex = 0;
    var row = sheet.CreateRow(rowIndex);
    var cell = row.CreateCell(0);
    var text = "this is content";
    cell.SetCellValue(text);
    var font = workbook.CreateFont();
    font.Color = HSSFColor.Blue.Index2;
    cell.RichStringCellValue.ApplyFont(text.Length - 4, text.Length, font);
    workbook.Write(fs);
}
该代码也适用于.NETFramework和NPOINuget包

结果:

单元格具有属性
RichStringCellValue
。您可以在
RichStringCellValue
上调用
ApplyFont
方法,并指定将应用字体的范围