CnPlayer

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2430|回复: 0

[转帖] NPOI 2.0 教程(三):EXCEL 基本格式设置之ICellStyle

[复制链接]

124

主题

153

帖子

2862

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2862
发表于 2018-12-21 11:10:04 | 显示全部楼层 |阅读模式
转载请注明出处 http://blog.csdn.net/fujie724



前两篇,我们已经学习了如何用NPOI来创建和编辑Excel,并且已经熟悉了HSSFWorkbook,ISheet,IRow和ICell。

接下来我们把它变得漂亮一点。



ICellStyle——单元格样式

当我们拥有了一个HSSFWorkbook实例之后。我们可以通过下面的方式来创建一个样式变量。

HSSFWorkbook wk = new HSSFWorkbook();//你用来操作的HSSFWorkbook的实例
ICellStyle cellStyle = wk.CreateCellStyle();
这样我们就创建好了一个样式变量。

注意:
创建样式是基于HSSFWorkbook,而不是ISheet。
这个ICellStyle里有些什么属性可以设置呢?



没错,所有你能想到的对于单元格的格式样式的设置都在里面。种类非常多,命名也比较直白,比如:对齐方式,上下左右边框线的颜色和样式,字体等等。

写个例子给大家看看。

ICellStyle cellStyle = wk.CreateCellStyle();
//设置单元格上下左右边框线
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
//文字水平和垂直对齐方式
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
//是否换行
//cellStyle.WrapText = true;
//缩小字体填充
cellStyle.ShrinkToFit = true;
大部分的设置都有相应的枚举类型可以选择,比如这个边框样式Thin,实际上就是我们最常见的单线最细的那种边框,你也可以根据需要设置成虚线,点线,双线等等。

注意:
“是否换行”和“缩小字体填充”本身是互斥的两个设置,如果同时设为True,则只有“是否换行”会生效。


设置好了格式变量,就可以把它应用到单元格上去。通过对ICell的CellStyle赋值实现。

ICell Cell = sheet.CreateRow(0).CreateCell(0);
Cell.CellStyle = cellStyle;
Cell.SetCellValue("测试格式效果");
设置格式就是这么简单。



你可能会问了,如果我需要设置一大片的单元格都是这个格式,该不会要一个一个的设置吧?

很悲催的告诉你,没错,目前暂未发现有直接批量设置格式的方法。不过考虑到本身你也需要一个一个去创建Cell,所以顺便赋值上去也不是什么很麻烦的事情。

提到ICellStyle就不能不提到一个需要注意的地方:
通过某些现象我们曾经观察到,ICellStyle的创建是有数量限制的,换句话说,一个Excel文件里负责保存样式的空间是有限的,样式也占用一定的文件大小。
那么我们就应该注意样式的重复利用,相同的样式尽量不要创建两份,直接赋值同一个就可以了,在编写代码的时候注意样式变量的作用域。
对于只有少部分不相同的样式,我们可以使用CloneStyleFrom()方法来克隆前一个样式,而只修改需要修改的部分,减少重复代码。

ICellStyle newCellStyle = wk.CreateCellStyle();
newCellStyle.CloneStyleFrom(cellStyle);
newCellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;

关于ICellStyle已经讲完,希望大家喜欢。下一篇继续讲解格式设置的其他内容。



转载请注明出处 http://blog.csdn.net/fujie724
---------------------
作者:灵魂重铸
来源:CSDN
原文:https://blog.csdn.net/fujie724/article/details/41847427
版权声明:本文为博主原创文章,转载请附上博文链接!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|玩儿家 ( 京ICP备16001541号-1 )

GMT+8, 2020-1-18 17:23 , Processed in 0.062605 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表