C#NPOI rowStyle

时间:2016-12-14 09:20:00

标签: c# npoi

我已经应用NPOI来生成excel。到目前为止,除了我想要加粗一行之外这么好。

我试过了:

tmpRow.RowStyle = workbook.CreateCellStyle();
tmpRow.RowStyle.SetFont(boldFont);

然而,一切都没有改变。

虽然我可以通过逐个设置来实现:

ICellStyle boldFontCellStyle = workbook.CreateCellStyle();
IFont boldFont = workbook.CreateFont();
boldFont.IsBold = true;
boldFontCellStyle.SetFont(boldFont);
for (int p= 0; p <= 12; p++)
{
    tmpRow.GetCell(p).CellStyle = boldFontCellStyle;
}
//tmpRow.RowStyle = workbook.CreateCellStyle();
//tmpRow.RowStyle.SetFont(boldFont);

我想知道是否有办法在NPOI中设置整个行样式?

感谢。

2 个答案:

答案 0 :(得分:2)

尝试使用行样式

XSSFFont defaultFont = (XSSFFont)workbook.CreateFont();
defaultFont.FontHeightInPoints = (short)10;
defaultFont.FontName = "Arial";
defaultFont.Color = IndexedColors.Black.Index;
defaultFont.IsBold = true;

XSSFCellStyle yourCellStyle = (XSSFCellStyle)workbook.CreateCellStyle();
yourCellStyle.SetFont(defaultFont);

var row = sheet.CreateRow(0);
row.RowStyle = yourCellStyle;

下面是一个用于细胞样式的

 XSSFFont yourFont = (XSSFFont)workbook.CreateFont();
    yourFont.FontHeightInPoints = (short)12;
    yourFont.FontName = "Arial";               
    yourFont.IsBold = true;
    yourFont.IsItalic = false;
    yourFont.Boldweight = 700;
    XSSFCellStyle yourStyle = (XSSFCellStyle)workbook.CreateCellStyle();
    yourStyle.SetFont(yourFont);
    for (int p= 0; p <= 12; p++)
      { 
        row.Cells[p].CellStyle = yourStyle;
      }

答案 1 :(得分:0)

生成样式,设置样式然后将其应用于行。像这样:

var rowStyle = workbook.CreateCellStyle();
rowStyle.SetFont(boldFont);

tmpRow.RowStyle = rowstyle;