首页 新闻 会员 周边 捐助

NPOI导出Excel样式设置问题

0
悬赏园豆:40 [已解决问题] 解决于 2019-08-02 20:56

使用NPOI 中发现,在多个sheet中比如有10个sheet,前2个Sheet 是设置字体是起作用的。但后面的全部样式失效。

但是Excel表中却是有样式设置的,复制单元格到另外一个Excel表中是有效的。
下图是正常的

异常的如下:

请问大家有遇到过这个情况吗?

纵一苇之所如-的主页 纵一苇之所如- | 初学一级 | 园豆:187
提问于:2019-03-19 16:04
< >
分享
最佳答案
0

这是由于 NPOI 在 Excel 中创建了过多的字体造成的,就是 Workbook.CreateFont() 那句,可能被频繁调用了。注意,即使 CreateFont 创建的对象,没有使用,也是存在起来了的。

纵一苇之所如- | 初学一级 |园豆:187 | 2019-03-26 11:44
其他回答(1)
0

你可以试下用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;//字体大小

收获园豆:40
ms_doudou | 园豆:1170 (小虾三级) | 2019-03-20 09:31

谢谢你的回答,我找到原因了。

支持(0) 反对(0) 纵一苇之所如- | 园豆:187 (初学一级) | 2019-03-26 11:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册