NPOI2.0教程(三):EXCEL基本格式设置之ICellStyle
前两篇,我们已经学习了如何⽤NPOI来创建和编辑Excel,并且已经熟悉了HSSFWorkbook,ISheet,IRow和ICell。
接下来我们把它变得漂亮⼀点。
ICellStyle——单元格样式
当我们拥有了⼀个HSSFWorkbook实例之后。我们可以通过下⾯的⽅式来创建⼀个样式变量。
HSSFWorkbook wk = new HSSFWorkbook();//你⽤来操作的HSSFWorkbook的实例
ICellStyle cellStyle = wk.CreateCellStyle();
这样我们就创建好了⼀个样式变量。
注意:
创建样式是基于HSSFWorkbook,⽽不是ISheet。
这个ICellStyle⾥有些什么属性可以设置呢?
没错,所有你能想到的对于单元格的格式样式的设置都在⾥⾯。种类⾮常多,命名也⽐较直⽩,⽐如:对齐⽅式,上下左右边框线的颜⾊和样式,字体等等。
写个例⼦给⼤家看看。
textstyle
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已经讲完,希望⼤家喜欢。下⼀篇继续讲解格式设置的其他内容。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。