NPOI 第二篇 设置样式与合并单元格

前言

上一篇NPOI的文章介绍了NPOI的下载、引用以及基本使用方法。本文将进一步讲解NPOI,给出了设置单元格样式以及合并单元格的代码示例。

上一篇博客《NPOI的下载、引用、基本使用》链接:

https://blog.csdn.net/wf824284257/article/details/77113691

开始

本文将通过一个简单的例子来讲解NPOI的单元格样式及合并单元格的方法。

所使用的测试数据如图:

############## 1

上图为 sql server 数据库中的表数据。在实际应用场景中,数据往往是通过查询数据库(DB)来获取的,但本文为了方便读者下载示例代码,该表数据将直接写死在代码里。本文示例代码项目可以从博主资源页下载,下载地址为:

https://download.csdn.net/download/wf824284257/10899002

我们需要将该表数据导出为excel文件下载,目标excel格式如下:

############### 2

下面将分步骤讲解如何做到这样的效果。

Step1. 表头单元格样式

表头样式设置水平居中、大小14、黄背景红字、红底线。参考代码如下:

//表头样式
ICellStyle headStyle = workbook.CreateCellStyle();
headStyle.Alignment = HorizontalAlignment.Center;
IFont font = workbook.CreateFont();
font.Boldweight = 20;
font.FontHeightInPoints = 14;
font.Color = HSSFColor.Red.Index;
headStyle.SetFont(font);
//以下三行为背景色
headStyle.FillForegroundColor = HSSFColor.Yellow.Index;
headStyle.FillPattern = FillPattern.Squares;
headStyle.FillBackgroundColor = HSSFColor.Yellow.Index;
//border
headStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Medium;
headStyle.BottomBorderColor = HSSFColor.Red.Index;
Step2. 普通单元格样式

普通单元格样式设置水平居中、垂直居中、绿字。参考代码如下:

//普通单元格样式
ICellStyle bodyStyle = workbook.CreateCellStyle();
bodyStyle.Alignment = HorizontalAlignment.Center;
bodyStyle.VerticalAlignment = VerticalAlignment.Center;
IFont font1 = workbook.CreateFont();
font1.Color = HSSFColor.Green.Index;
font1.Boldweight = 20;
bodyStyle.SetFont(font1);
Step3. 合并行

合并行使用 ISheet.AddMergedRegion 方法来实现。对于本文示例,可以从第0列即id列入手,在对sheet的行进行遍历的基础上,对于具有相同id的行的前两列进行纵向合并。

参考代码如下:

//合并行
for(int i = 1; i < dt.Rows.Count + 1; i++)
{
    string value = sheet.GetRow(i).GetCell(0).StringCellValue;
    int end = i;
    //找到结束为止
    for(int j = i + 1; j < dt.Rows.Count + 1; j++)
    {
        string value1= sheet.GetRow(j).GetCell(0).StringCellValue;
        if (value != value1)
        {
            end = j - 1;
            break;
        }
        else if(value==value1 && j == dt.Rows.Count)
        {
            end = j;
            break;
        }
    }
    sheet.AddMergedRegion(new CellRangeAddress(i, end, 0, 0));
    sheet.AddMergedRegion(new CellRangeAddress(i, end, 1, 1));
    i = end;
}
Step4. 设置列宽

参考代码如下:

//列宽
sheet.SetColumnWidth(0, 20 * 256);
sheet.SetColumnWidth(1, 20 * 256);
sheet.SetColumnWidth(2, 20 * 256);
sheet.SetColumnWidth(3, 20 * 256);

至此,该excel的格式设置完毕。

结束

本文将通过一个简单的例子讲解了NPOI的单元格样式设置及单元格合并的方法。该示例代码项目目录如下图所示:

################ 3

该项目可以在博主资源页下载:

https://download.csdn.net/download/wf824284257/10899002

  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C是英文字母表中的第三个字母,也是拉丁字母表中的一个字母。在大多数语言中,C是一个常见的音素,并且有多种发音方式。在英文中,C可以表示/k/音,如cat(猫);也可以表示/s/音,如cent(分)。 C也是化学元素周期表中的一个元素符号,代表着碳(carbon),是一种非金属元素。碳是生命体中非常重要的元素,它在自然界中广泛存在,构成了有机物的基础,包括蛋白质、核酸和脂肪等。 此外,在数学中,C通常代表着复数域(complex),是一个包含实数域的扩充数域。复数由实数与虚数组成,其表示形式为a+bi,其中a和b分别为实数部分和虚数部分。 在计算机科学中,C是一种高级编程语言,开发人员可以使用C语言编写程序。C是一种通用的编程语言,被广泛应用于系统软件、嵌入式系统和游戏开发等领域。 总而言之,C是一个多功能的字母,用于表示字母、化学元素、数学概念和计算机编程语言等不同领域中的概念和符号。 ### 回答2: C是英文字母表中的第三个字母。它的发音是/k/,类似于中文的“刻”。C在英语中有着广泛的应用,不仅仅是作为一个字母的代表,还可以代表一些其他的东西。 首先,C是化学元素周期表中的碳元素的符号。碳是地球上最常见的元素之一,它具有很高的化学活性和重要的生物学意义。碳元素可以形成很多有机化合物,是构成生物体的基本元素之一。 此外,C也代表着数学中的一个常数,即圆周率(Pi)。圆周率是一个无理数,它是一个数学常数,代表了圆的周长与直径的比值。它的近似值约为3.14159,但是它的准确值是无限不循环的小数。 此外,C也是计算机科学中一种编程语言的名称,C语言是一种通用的高级程序设计语言,广泛用于系统软件和应用软件的开发。它具有简洁的语法和强大的功能,是一种十分重要的编程语言。 总而言之,C是一个多功能的字母,在不同的领域都有着重要的应用。无论是化学、数学还是计算机科学,C都扮演着重要的角色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值