C# 如何创建Excel多级分组
在Excel中如果能够将具有多级明细的数据进行分组显示,可以清晰地展示数据表格的整体结构,使整个文档具有一定层次感。根据需要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述。方法中使用了免费版组件Free Spire.XLS for .NET,下载安装该组件,创建一个控制台应用程序后,添加引用该组件安装包下的dll文件到项目中,同时添加相应的命名空间即可。下面是具体的代码操作步骤,供参考。
步骤一:创建一个Wordbook类对象,获取第一个工作表
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[];
步骤二:写入数据到单元格
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(, , false);
//选择行进行二级分组
sheet.GroupByRows(, , false);
sheet.GroupByRows(, , false);
sheet.GroupByRows(, , false);
//选择行进行三级分组
sheet.GroupByRows(,, 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文件夹下查看生成的文档)
效果展示:

全部代码:
using System;
using System.Drawing;
using Spire.Xls; namespace MultilevelGroup_XLS
{
class Program
{
static void Main(string[] args)
{
//创建一个Wordbook类对象,获取第一个工作表
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[]; //写入数据到单元格
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(, , false); //选择行进行二级分组
sheet.GroupByRows(, , false);
sheet.GroupByRows(, , false);
sheet.GroupByRows(, , false); //选择行进行三级分组
sheet.GroupByRows(,, 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);
System.Diagnostics.Process.Start("output.xlsx");
}
}
}
以上是关于设置Excel多级分组的全部操作步骤,如果对您有所帮助,欢迎转载(转载请注明出处)。
感谢阅读!
C# 如何创建Excel多级分组的更多相关文章
- [.NET开发] C# 如何创建Excel多级分组
要设置显示或者隐藏分类数据下的详细信息,在便于数据查看.管理的同时也使文档更具美观性.那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述.方法中使用了免费版组件Free Spi ...
- Excel催化剂开源第4波-ClickOnce部署要点之导入数字证书及创建EXCEL信任文件夹
Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首 ...
- 使用SPIRE.XLS来创建Excel 工作簿
使用SPIRE.XLS来创建Excel 工作簿 概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XL ...
- 使用NPOI创建Excel
一.NPOI 函式庫: NPOI 函式庫檔案有七個,NPOI 函式庫可以在 http://npoi.codeplex.com 中下載,分別是: NPOI.DLL:NPOI 核心函式庫. NPOI.DD ...
- l创建Excel文件
最近的项目中遇到需要将List<Map<String,String>>存储到Excel文件中,为满足此需求设计实现了如下函数: /** * 将MapList转化为Excel文件 ...
- NPOI 2.0 创建Excel文件
如果只是简单的处理的话,只需要引用下载压缩包里的 NPOI.dll (office 2003)或 NPOI.OOXML.dll (office 2007) 文件而已. using System; us ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- C#创建Excel文件并将数据导出到Excel文件
工具原料: Windows 7,Visual Studio 2010, Microsoft Office 2007 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加 ...
- java使用poi创建excel文件
import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import or ...
随机推荐
- PHP实现微信模板消息发送给指定用户
使用公众号的模板消息功能,必须是认证过的服务号,需要发送微信号的openid,同一微信号在不同公众号下的openid是不同的,在公众号下是唯一的,获取不到微信号 进入公众平台 功能->模板消息 ...
- NFS 系统搭建 - 成功
NFS是Network File System的缩写,即文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. 工作流程 1.由程序在NFS客户端发起存取文件的请求,客户端本地 ...
- High Availability手册(2): 架构
最底层是通信层corosync/openais 负责cluster中node之间的通信 上一层是Resource Allocation Layer,包含下面的组件: CRM Cluster Resou ...
- 我们为什么要搞长沙.NET技术社区(三)
我们为什么要搞长沙.NET技术社区(三) 万事先从饭局开始是中华民族留下来的一个优秀的传统美德. 昨天晚餐时间,长沙 .net 技术社区的主要发起人员进行了一番小聚,同时也作为一个非正式会议,对社区发 ...
- [.net 面向对象程序设计深入](18)实战设计模式——设计模式使用场景及原则
[.net 面向对象程序设计深入](18)实战设计模式——设计模式使用场景及原则 1,什么是设计模式? 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计 ...
- linux 完全关闭tomcat
由于直接调用tomcat的 shutdown.sh 有时无法完全关闭掉tomcat,使用 ps -ef | grep tomcat 查找发现tomcat依然还存在,并未完全关掉.在 catalina. ...
- LeetCode题解41.First Missing Positive
41. First Missing Positive Given an unsorted integer array, find the first missing positive integer. ...
- [Swift]LeetCode377. 组合总和 Ⅳ | Combination Sum IV
Given an integer array with all positive numbers and no duplicates, find the number of possible comb ...
- IDEA 配置远程debug
1. 启动远程服务配置debug参数 远程服务启动时配置如下debug相关参数 java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address= ...
- Java高级特性-String、StringBuffer和StringBuilder
Java高级特性-String.StringBuffer和StringBuilder String Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一 ...