• [.NET开发] C# 如何创建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文件夹下查看生成的文档)

    效果截图:

    C# 如何创建Excel多级分组

    完整代码:

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

    }

    }

    }

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

  • 相关阅读:
    linux静态链接库
    查看进程运行时间
    进程间同步-互斥量
    Linux——多线程下解决生产消费者模型
    Linux——线程
    浅谈智能指针的历史包袱
    C++ 模板基础
    用信号量为共享内存添加同步机制
    Linux——浅析信号处理
    浅析fork()和底层实现
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9237880.html
Copyright © 2020-2023  润新知