NPOI创建包含粗体和非粗体文本的单元格

Nat*_*han 22 c# cell-formatting npoi

我正在使用NPOI从Asp.Net MVC应用程序输出excel并且与纯文本一起工作得非常好但是现在已经被要求添加格式并且我遇到问题我需要有一个单元格,粗体文本后跟非粗体文本.例如

这个文字粗体 - 这个文字正常

我知道我可以给单元格一个单一的样式,但这无济于事我无论如何都看不到为单元格提供一些预先格式化的富文本.

我能想到的唯一可能的解决方案是分别创建两个单元格并将它们合并在一起,但这是否意味着格式化将会丢失?

我有没有办法在NPOI中错过这个?

小智 22

幸运的是,你能够做到这一点......看看这段代码:

Font f1=wb.CreateFont();
f1.Color=HSSFColor.RED.index;
ws.GetRow(1).GetCell(0).RichStringCellValue.ApplyFont(1, 5, f1);
Run Code Online (Sandbox Code Playgroud)


小智 22

你可以试试这个:

        var font = reportWorkbook.CreateFont();
        font.FontHeightInPoints = 11;
        font.FontName = "Calibri";
        font.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD; 

        var cell = headerRow.CreateCell(0);
        cell.SetCellValue("Test Bold");
        cell.CellStyle = reportWorkbook.CreateCellStyle();
        cell.CellStyle.SetFont(font);
Run Code Online (Sandbox Code Playgroud)

  • 我用它来将粗体文本设置为整个单元格,而不是一半/一半 (3认同)

oPl*_*ess 6

似乎Ernie Banzon的答案不再完全按照描述的方式工作,可能是由于命名空间的更改(或者实际上我正在使用HSSF命名空间?)

// usings
using NPOI.HSSF.UserModel;

// IWorkbook doc
IFont font = doc.CreateFont();
font.FontHeightInPoints = 11;
font.FontName = "Arial";
font.Boldweight = (short)FontBoldWeight.BOLD;
Run Code Online (Sandbox Code Playgroud)


Nat*_*han -1

经过大量调查后,您似乎无法在 NPOI 内部执行此操作,因为它没有提供必要的功能来允许您像我试图做的那样在单元格内设置特定文本的格式。

  • 错误的。(您应该接受给出的答案之一) (5认同)
  • @Slight这是近四年前的答案。那时,即使使用了建议的解决方案,代码也无法按照我的需要工作。顺便问一下,我可以问一下,对一个近 4 年前的答案投反对票有什么价值? (2认同)