首页 新闻 搜索 专区 学院

使用NPOI创建Excel文件时如何设置默认字体

0
悬赏园豆:10 [已解决问题] 解决于 2021-05-24 18:02

使用NPOI已经有一段时间了,一直用着很好,但最近遇到了这样一个问题:使用NPOI创建的xlsx文件在WPS中打开并使用打印预览一切正常,使用Excel 2019打印预览则会出现宽度不足,打印页数增加的情况,且设置好的行高也对不上。

经过反复检查,发现问题是出在两个软件的默认字体上面。通过打开文件后修改“常规”单元格样式可以解决。使用WPS打开后“常规”单元格样式的字体为“宋体”,而Excel2019打开是“等线”,所有未设置过的字体的单元格字体默认均为“等线”。如果使用WPS打开并保存后再使用Excel2019打开则会一切正常。

不知道有没有什么办法解决这一问题。在创建xlsx文件时设置每个单元格的默认字体。

问题补充:

经过反复查找资料,终于找到了解决办法,代码如下,感谢各位回复:
IFont font = workbook.GetFontAt(0);//默认的字体
font.FontName = "宋体";
((XSSFFont)font).SetFamily(NPOI.SS.UserModel.FontFamily.MODERN);
((XSSFFont)font).SetScheme(FontScheme.NONE);

参考:https://www.freesion.com/article/6410674446/
https://stackoverflow.com/questions/39686790/apache-poi-default-style-for-workbook

网络孤魂的主页 网络孤魂 | 初学一级 | 园豆:193
提问于:2021-05-19 09:21
< >
分享
最佳答案
0

只看到单元格设置字体方法,没看到全局设置字体。

收获园豆:10
清海扬波 | 小虾三级 |园豆:825 | 2021-05-21 09:08

对啊,找不到这个功能,以前旧版的Excel默认字体不是等线的都没问题,现在新版的换成等线了,如果不处理一下直接导出PDF会打印格式出问题。

网络孤魂 | 园豆:193 (初学一级) | 2021-05-21 19:44

经过反复查找资料,终于找到了解决办法,代码如下,感谢各位回复:
IFont font = workbook.GetFontAt(0);//默认的字体
font.FontName = "宋体";
((XSSFFont)font).SetFamily(NPOI.SS.UserModel.FontFamily.MODERN);
((XSSFFont)font).SetScheme(FontScheme.NONE);

参考:https://www.freesion.com/article/6410674446/
https://stackoverflow.com/questions/39686790/apache-poi-default-style-for-workbook

网络孤魂 | 园豆:193 (初学一级) | 2021-05-24 18:03
其他回答(1)
0

可以试试free spire.xls

ms_doudou | 园豆:1142 (小虾三级) | 2021-05-20 09:33

自己用用,免费版的不够用,收费版的付不起

支持(0) 反对(0) 网络孤魂 | 园豆:193 (初学一级) | 2021-05-20 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册