使用NPOI 中发现,在多个sheet中比如有10个sheet,前2个Sheet 是设置字体是起作用的。但后面的全部样式失效。
但是Excel表中却是有样式设置的,复制单元格到另外一个Excel表中是有效的。
下图是正常的
异常的如下:
请问大家有遇到过这个情况吗?
这是由于 NPOI 在 Excel 中创建了过多的字体造成的,就是 Workbook.CreateFont() 那句,可能被频繁调用了。注意,即使 CreateFont 创建的对象,没有使用,也是存在起来了的。
你可以试下用Free Spire.Xls操作Excel
导出Excel:
Workbook wb = new Workbook();
Worksheet sheet = wb.Worksheets[0];
sheet.InsertDataTable(datatable, true, 1, 1);
wb.SaveToFile("insertTableToExcel.xlsx",ExcelVersion.Version2013);
样式设置:
sheet.Range["C5:E6"].Style.Font.Color = Color.FromArgb(255, 125, 125);//文本颜色
sheet.Range["C5:E6"].Style.Font.IsBold = true;//字体是否加粗
sheet.Range["C5:E6"].Style.Font.IsItalic = true;//是否斜体
sheet.Range["C5:E6"].Style.Font.Underline = FontUnderlineType.Single;//下划线
sheet.Range["C5:E6"].Style.Font.IsSuperscript = true;//是否呈现为下标
sheet.Range["C5:E6"].Style.Font.FontName = "华文彩云";//字体名称
sheet.Range["C5:E6"].Style.Font.Size = 30;//字体大小
谢谢你的回答,我找到原因了。