#c# #npoi
#c# #npoi
Вопрос:
При использовании C # NPOI есть ли способ изменить цвет шрифта только для части текста в ячейке? Я знаю, что вы можете изменить цвет шрифта для всей ячейки. Но я хотел бы изменить цвет только последних 4 символов в этой ячейке.
Я знаю, что есть способ сделать это в VBA:
Однако я не вижу способа сделать то же самое с помощью NPOI
Ответ №1:
Пример для 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);
}
Код также работает для .NET framework и пакет nuget NPOI.
Результат:
Ячейка имеет свойство RichStringCellValue
. Вы можете вызвать ApplyFont
метод on RichStringCellValue
и указать диапазон, в котором будет применен шрифт.
Комментарии:
1. Есть ли какая-либо причина, по которой вы не используете nuget.org/packages/NPOI посылка? Dotnetcore.npoi не поддерживается в течение длительного времени (по крайней мере, 4 года).
2. @TonyQu Как указано в ответе «Код также работает для . NET framework и пакет NPOI nuget «. Я пробовал оба пакета nuget.
3. Причина, по которой я упоминаю об этом, заключается в том, что Dotnetcore. NPOI — это просто разветвленная версия NPOI 2.2.1, и они только что перенесли ее. NET core, но никаких дальнейших исправлений ошибок вообще нет. Для получения подробной информации, пожалуйста, проверьте tonyqus.medium.com /. …
4. Ваш код работает, потому что dotnetcore. NPOI — это просто NPOI 2.2.1, и пакет NPOI поддерживает . NET core долгое время. Но сообщество введено в заблуждение злой группой NCC, и они считают, что NPOI — это просто пакет .NET framework, что неверно.