C# 创建Excel多级分组(Spire.xls)

在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 }

 

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

感谢阅读!

转载于:https://www.cnblogs.com/Yesi/p/8080166.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Free Spire.XLS for .NET 是e-iceblue公司开发的一款支持对所有Excel格式类型文件进行操作的.NET 控件。它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序。Spire.XLS for .NET允许开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office。相比Microsoft,Spire.XLS for .NET对于开发人员来说是一个更好的选择 - 自动化,安全,稳定,可扩展性延伸,速度快,价格便宜和功能强大。 通过使用Free Spire.XLS for .NET,开发人员可以快速方便的查看,生成,读写以及自定义编辑Excel文件。Spire.XLS for .NET支持Excel 97-2003, Excel 2007, Excel 2010 and Excel 2013。它还支持C#, VB.NET, ASP.NET和 ASP.NET MVC编程语言 作为一款专业,强大,方便易用的控件,Spire.XLS for .NET有一下主要功能: 新建Excel文件,编辑已有的Excel文件,多种保存Excel方式,设置Excel文件属性,文件打印设置,合并,拆分或者拷贝单元格,支持对Excel文件加锁或者加密保护。 Spire.XLS for .NET支持把数据从数据库导出到Excel工作表,或者把数据从Excel数据导入到数据库。 Spire.XLS for .NET 提供强大的功能为开发者设置单元格格式。这次格式化数字,文字缩进,定位调整,设置单元格边线,单元格填充以及保护等。 开发人员可以轻松的利用Spire.XLS for .NET向Excel文件里面写入内容,包括超过530多种的公式,70多种表格,支持插入图片,不同类型的文字,链接,注释甚至VBA等。 Spire.XLS for .NET 还允许开发人员将Excel文件转换成PDF, HTML, CSV, Text, XML以及图片格式。 注:下载包含有Spire.xls.dll文件以及部分Demo, 你可以调用DLL并参照Demo提供的代码处理Excel文档。
Spire.XLS 是一个 C#Excel 处理库,它提供了读取和写入 Excel 文件的功能。你可以使用 Spire.XLS 来操作 Excel 文件,包括读取、写入、创建、修改和格式化等操作。 要使用 Spire.XLS,首先需要在你的项目中引入 Spire.XLS 的命名空间: ```csharp using Spire.Xls; ``` 然后,你可以使用以下代码示例来读取和写入 Excel 文件: 读取 Excel 文件: ```csharp // 创建一个 Workbook 对象 Workbook workbook = new Workbook(); // 加载 Excel 文件 workbook.LoadFromFile("path/to/your/excel/file.xlsx"); // 获取第一个工作表 Worksheet sheet = workbook.Worksheets[0]; // 遍历工作表中的单元格 foreach (CellRange range in sheet.Cells) { // 获取单元格的值 string value = range.Value; // 处理单元格的值 // ... } // 关闭 workbook 对象 workbook.Close(); ``` 写入 Excel 文件: ```csharp // 创建一个 Workbook 对象 Workbook workbook = new Workbook(); // 创建一个工作表 Worksheet sheet = workbook.CreateEmptySheet(); // 设置单元格的值 sheet.Range["A1"].Value = "Hello"; sheet.Range["B1"].Value = "World"; // 保存为 Excel 文件 workbook.SaveToFile("path/to/save/excel/file.xlsx"); // 关闭 workbook 对象 workbook.Close(); ``` 这只是 Spire.XLS 的一些基本用法示例,你可以根据具体需求进行更多操作,如格式化单元格、合并单元格、设置样式等。详细的 API 文档可以在 Spire.XLS 的官方网站或官方文档中找到。 希望这能帮到你!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值