C# 如何创建Excel多级分组

简介: 在Excel中如果能够将具有多级明细的数据进行分组显示,可以清晰地展示数据表格的整体结构,使整个文档具有一定层次感。根据需要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。

在Excel中如果能够将具有多级明细的数据进行分组显示,可以清晰地展示数据表格的整体结构,使整个文档具有一定层次感。根据需要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述。方法中使用了免费版组件Free Spire.XLS for .NET,下载安装该组件,创建一个控制台应用程序后,添加引用该组件安装包下的dll文件到项目中,同时添加相应的命名空间即可。下面是具体的代码操作步骤,供参考。

步骤一:创建一个Wordbook类对象,获取第一个工作表

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

步骤二:写入数据到单元格

sheet.Range["A1"].Value = "公司部门";
sheet.Range["A3"].Value = "综合部";
sheet.Range["A4"].Value = "行政";
sheet.Range["A5"].Value = "人事";
sheet.Range["A6"].Value = "市场部";
sheet.Range["A7"].Value = "业务部";
sheet.Range["A8"].Value = "客服部";
sheet.Range["A9"].Value = "技术部";
sheet.Range["A10"].Value = "技术开发";
sheet.Range["A11"].Value = "技术支持";
sheet.Range["A12"].Value = "售前支持";
sheet.Range["A13"].Value = "售后支持";

步骤三:设置IsSummaryRowBelow属性为false, 即总结行显示在明细行上方

sheet.PageSetup.IsSummaryRowBelow = false;

步骤四:选择行进行分组,参数false表示展开当前分组,如需隐藏,设置成true

//选择行进行一级分组
sheet.GroupByRows(2, 13, false);
//选择行进行二级分组
sheet.GroupByRows(4,5 , false);
sheet.GroupByRows(7, 8, false);
sheet.GroupByRows(10,13 , false);
//选择行进行三级分组
sheet.GroupByRows(12,13, true);

步骤五:定义一个CellStyle对象,设置并运用格式到单元格内字体

CellStyle style = workbook.Styles.Add("style");
style.Font.IsBold = true;
style.Color = Color.LawnGreen;
sheet.Range["A1"].CellStyleName = style.Name;
sheet.Range["A3"].CellStyleName = style.Name;
sheet.Range["A6"].CellStyleName = style.Name;
sheet.Range["A9"].CellStyleName = style.Name;

步骤六:设置区域边框样式

sheet.Range["A4:A5"].BorderAround(LineStyleType.Thin);
sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
sheet.Range["A7:A8"].BorderAround(LineStyleType.Thin);
sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
sheet.Range["A10:A13"].BorderAround(LineStyleType.Thin);
sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);

步骤七:保存文档

workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);

运行程序生成文档(可在该项目文件夹下bin>Debug文件夹下查看生成的文档)

效果展示:

 全部代码:

 1 using System;
 2 using System.Drawing;
 3 using Spire.Xls;
 4 
 5 
 6 namespace MultilevelGroup_XLS
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             //创建一个Wordbook类对象,获取第一个工作表
13             Workbook workbook = new Workbook();
14             Worksheet sheet = workbook.Worksheets[0];
15 
16             //写入数据到单元格
17             sheet.Range["A1"].Value = "公司部门";
18             sheet.Range["A3"].Value = "综合部";
19             sheet.Range["A4"].Value = "行政";
20             sheet.Range["A5"].Value = "人事";
21             sheet.Range["A6"].Value = "市场部";
22             sheet.Range["A7"].Value = "业务部";
23             sheet.Range["A8"].Value = "客服部";
24             sheet.Range["A9"].Value = "技术部";
25             sheet.Range["A10"].Value = "技术开发";
26             sheet.Range["A11"].Value = "技术支持";
27             sheet.Range["A12"].Value = "售前支持";
28             sheet.Range["A13"].Value = "售后支持";
29 
30             //设置IsSummaryRowBelow为false, 即总结行显示在明细行上方
31             sheet.PageSetup.IsSummaryRowBelow = false;
32 
33             //选择行进行一级分组
34             //参数false表示展开当前分组,若要隐藏设置成true
35             sheet.GroupByRows(2, 13, false);
36 
37             //选择行进行二级分组
38             sheet.GroupByRows(4,5 , false);
39             sheet.GroupByRows(7, 8, false);
40             sheet.GroupByRows(10,13 , false);
41 
42             //选择行进行三级分组
43             sheet.GroupByRows(12,13, true);
44 
45             //定义一个CellStyle对象,设置并运用单元格内字体格式
46             CellStyle style = workbook.Styles.Add("style");
47             style.Font.IsBold = true;
48             style.Color = Color.LawnGreen;
49             sheet.Range["A1"].CellStyleName = style.Name;
50             sheet.Range["A3"].CellStyleName = style.Name;
51             sheet.Range["A6"].CellStyleName = style.Name;
52             sheet.Range["A9"].CellStyleName = style.Name;
53             
54             //设置区域边框样式
55             sheet.Range["A4:A5"].BorderAround(LineStyleType.Thin);
56             sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
57             sheet.Range["A7:A8"].BorderAround(LineStyleType.Thin);
58             sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
59             sheet.Range["A10:A13"].BorderAround(LineStyleType.Thin);
60             sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);
61 
62 
63             //保存文档
64             workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);
65             System.Diagnostics.Process.Start("output.xlsx");
66         }
67     }
68 }
View Code

 

以上是关于设置Excel多级分组的全部操作步骤,如果对您有所帮助,欢迎转载(转载请注明出处)。

感谢阅读!

目录
相关文章
|
前端开发 C#
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
32 3
|
3月前
|
开发框架 算法 .NET
C#使用MiniExcel导入导出数据到Excel/CSV文件
C#使用MiniExcel导入导出数据到Excel/CSV文件
81 0
|
5月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
133 1
|
6月前
|
存储 API C#
C# 实现格式化文本导入到Excel
C# 实现格式化文本导入到Excel
|
6月前
|
C#
C#NPOI操作Excel详解
C#NPOI操作Excel详解
853 0
|
6月前
|
C#
C# 创建Excel并写入内容
C# 创建Excel并写入内容
506 0
|
C#
45【软件技术基础】C#调用NPOI插件对EXCEL进行处理
NPOI插件进行EXCEL表格处理,不依赖第三方软件,功能强大,使用简便。 C#调用NPOI插件进行EXCEL单个表和文件夹中批量表的处理。
216 1