要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。那么,在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文件夹下查看生成的文档)

效果截图:

完整代码:

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[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);

System.Diagnostics.Process.Start("output.xlsx");

}

}

}

(编辑:雷林鹏 来源:网络)

[.NET开发] C# 如何创建Excel多级分组的更多相关文章

  1. C# 如何创建Excel多级分组

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

  2. android开发使用jxl创建Excel

    这周水了几天,今天把博客赶上,找找状态. 周五的时候终于完成了课堂测试第二阶段,主要的难点就是生成Excel表并将填写的数据插入到Excel表中. 一.jxl使用 1.创建或读取一个工作薄 Workb ...

  3. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  4. Excel催化剂开源第4波-ClickOnce部署要点之导入数字证书及创建EXCEL信任文件夹

    Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首 ...

  5. 使用SPIRE.XLS来创建Excel 工作簿

               使用SPIRE.XLS来创建Excel 工作簿     概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XL ...

  6. ADF_Desktop Integration系列2_ADF桌面集成入门之开发简单ADF Desktop Excel

    2013-05-01 Created By BaoXinjian

  7. VSTO之旅系列(二):创建Excel解决方案

    原文:VSTO之旅系列(二):创建Excel解决方案 本专题概要 引言 创建VSTO项目 Excel对象模型 创建Excel外接程序 创建Excel文档级自定义项 小结 一.引言 也许很多朋友都没有听 ...

  8. VSTO学习(三)——创建Excel解决方案

    四.创建Excel外接程序介绍完了Excel对象模型之后,我们就可以利用这些对象来对Excel文档进行操作了,下面就创建一个简单的Excel外接程序的.首先我们模拟一个需求,大多说软件在使用时都会弹出 ...

  9. 第二十章、QTableView与QStandardItemModel开发实战:展示Excel文件内容

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面<第十九章.Model/View开发:QTableView的功能及属性> ...

随机推荐

  1. VS2010/MFC编程入门之三十八(状态栏的使用详解)

    上一节中鸡啄米讲了工具栏的创建.停靠与使用,本节来讲解状态栏的知识. 状态栏简介 状态栏相信大家在很多窗口中都能见到,它总是用来显示各种状态.状态栏实际上也是一个窗口,一般分为几个窗格,每个窗格分别用 ...

  2. Object-C-Foundation-NSNuber

    NSNumber 是一个数值类型封装起来的数值. 装箱:基础类型->对象类型 NSNumber *number=[NSNumber numberWithInt:12]; 拆箱:对象类型-> ...

  3. EditPlus 4.3.2560 中文版已经发布

    新的版本修复了选中文本操作的一些问题. 下载连接在左上角!

  4. linux常用命令:which 命令

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. locate   配合数据库查看文件位置 ...

  5. CentOS安装JDK的三种办法

    方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java[root@localhost ~]# c ...

  6. python之路----TCP与UDP

    TCP import socket #tcp协议 sk = socket.socket() # 买手机 创建一个socket对象 sk.bind(('127.0.0.1',8080)) # 给serv ...

  7. iperf3.0 hisi uclib 交叉编译

    1. 下载iperf src https://github.com/esnet/iperf/ 2.修改makefile.in 里面的配置. src/Makefile.in 613行 地方两行,去掉-p ...

  8. pyDay5

    内容来自廖雪峰的官方网站 1.递归函数的优点是定义简单,逻辑清晰. 2.使用递归函数需要注意防止栈溢出. 3.在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会 ...

  9. Python Web学习笔记之并发编程的孤儿进程与僵尸进程

    1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...

  10. python模块-json、pickle、shelve

    json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...