我已经应用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
中设置整个行样式?
感谢。
答案 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;