NPOI的CellStyle单元格样式

前言

主要介绍NPOI(版本2.0.6)的单元格样式CellStyle的设置,具体样式的展现。

1 创建样式


            //创建工作簿对象
            IWorkbook workBook = new HSSFWorkbook();
            //创建样式
            ICellStyle cellStyle = workBook.CreateCellStyle();


2 单元格边框

边框样式BorderStyle一共有14种,具体效果如下

例如设置底部边框为较粗的实线

 cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Medium;

在这里插入图片描述

一个单元格有上下左右四个边框可以设置:

            //上边框
            cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thick;
            //下边框
            cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Medium;
            //左边框
            cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Dashed;
            //右边框
            cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Double;

每条边框的颜色设置

            cellStyle.TopBorderColor = HSSFColor.Blue.Index;
            cellStyle.BottomBorderColor = HSSFColor.Yellow.Index;
            cellStyle.LeftBorderColor = HSSFColor.Green.Index;
            cellStyle.RightBorderColor = HSSFColor.Red.Index;

在这里插入图片描述

2 单元格背景颜色

颜色的定义可以查看HSSFColor类的介绍
在这里插入图片描述

           //天蓝色
            cellStyle.FillForegroundColor = (short)40;
            //红色
            cellStyle.FillBackgroundColor = (short)10;
            //必须设置,否则不起作用
            cellStyle.FillPattern = FillPattern.SolidForeground;
      

效果图:
在这里插入图片描述

3 单元格字体

            IFont font = cellStyle.GetFont(workBook);
            font.FontName = "微软雅黑"; //字体
            font.Color = 10;  //红色
            font.FontHeightInPoints = 16; //字体高度(Excel中的字号)
            font.IsItalic = true;  //斜体
            font.IsStrikeout = true; //删除线
            font.Underline = FontUnderlineType.DoubleAccounting; //下划线

            cellStyle.SetFont(font);

在这里插入图片描述

4 单元格对齐

有水平方向对齐NPOI.SS.UserModel.HorizontalAlignment
还有垂直方向对齐NPOI.SS.UserModel.VerticalAlignment

水平方向垂直方向
Center水平居中Center垂直居中
General常规Top上对齐
Left靠左Bottom底部对齐
Right靠右Justify两端对齐
Fill填充Distributed分散对齐
Justify两端对齐
CenterSelection跨列居中
Distributed分散对齐
           //水平方向对齐 居中对齐
            cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;

            //垂直方向对齐 底部对齐
            cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Bottom;

5 单元格填充图案

NPOI.SS.UserModel.FillPattern 填充图案,为了更好区分图案,下面还使用不同颜色进行标记。

 ICellStyle style_0 = workBook.CreateCellStyle();
            style_0.FillPattern = NPOI.SS.UserModel.FillPattern.NoFill;
            style_0.FillForegroundColor = HSSFColor.BlueGrey.Index;

            ICellStyle style_1 = workBook.CreateCellStyle();
            style_1.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground;
            style_1.FillForegroundColor = HSSFColor.BlueGrey.Index;

            ICellStyle style_2 = workBook.CreateCellStyle();
            style_2.FillPattern = NPOI.SS.UserModel.FillPattern.FineDots;
            style_2.FillForegroundColor = HSSFColor.Red.Index;

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NPOI是一个在.NET平台上操作Excel文件的开源库,合并单元格是NPOI中常用的操作之一。在NPOI中,可以使用Sheet的AddMergedRegion方法来实现单元格的合并。 具体步骤如下: 首先,我们需要创建一个HSSFWorkbook对象,表示一个Excel文件。 然后,通过HSSFWorkbook对象的CreateSheet方法创建一个Sheet对象,表示一个工作表。 接着,创建一个CellStyle对象,用来设置合并单元格样式。可以设置字体、字号、背景色等。 然后,使用Sheet对象的CreateRow方法创建一个Row对象,表示一行数据。 接下来,创建一个CellRangeAddress对象,表示合并单元格的范围。参数分别为起始行、终止行、起始列、终止列。 最后,通过Sheet对象的AddMergedRegion方法将创建的CellRangeAddress对象应用到Excel表格中。 下面是一个简单的示例代码: ```csharp using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; // 创建一个HSSFWorkbook对象,表示一个Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个Sheet对象,表示一个工作表 ISheet sheet = workbook.CreateSheet("Sheet1"); // 创建一个CellStyle对象,设置合并单元格样式 ICellStyle style = workbook.CreateCellStyle(); // 设置样式如字体、字号、背景色等 style.Alignment = HorizontalAlignment.CENTER; // 创建一行数据 IRow row = sheet.CreateRow(0); // 创建一个CellRangeAddress对象,设置合并单元格的范围 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 3); // 将合并单元格应用到Excel表格中 sheet.AddMergedRegion(region); // 保存Excel文件 using (FileStream fs = new FileStream("test.xls", FileMode.Create)) { workbook.Write(fs); } ``` 以上就是使用NPOI合并单元格的简单示例。在实际使用中,我们可以根据具体需求自定义样式和合并多个单元格。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值