EPPLUS 分组

EPPLUS 分组使用EPPLUS,导出的EXCEL文件中分组publicvoidRow_Col_Grouping_Test(){//http://stackoverflow.com/questions/32760210/how-to-group-rows-columns-in-epplus//Throwinsomedatavardatatable=newDa

大家好,又见面了,我是你们的朋友全栈君。

使用EPPLUS,导出的EXCEL文件中分组

public void Row_Col_Grouping_Test()
{
    //http://stackoverflow.com/questions/32760210/how-to-group-rows-columns-in-epplus

    //Throw in some data
    var datatable = new DataTable("tblData");
    datatable.Columns.AddRange(new[]
    {
        new DataColumn("Header", typeof (string)), new DataColumn("Col1", typeof (int)), new DataColumn("Col2", typeof (int)), new DataColumn("Col3", typeof (object))
    });

    for (var i = 0; i < 10; i++)
    {
        var row = datatable.NewRow();
        row[0] = String.Format("Header {0}", i); row[1] = i; row[2] = i*10; row[3] = Path.GetRandomFileName(); datatable.Rows.Add(row);
    }

    //Create a test file
    var fi = new FileInfo(@"c:\temp\grouping.xlsx");
    if (fi.Exists)
        fi.Delete();

    using (var pck = new ExcelPackage(fi))
    {
        var worksheet = pck.Workbook.Worksheets.Add("Sheet1");
        worksheet.Cells.LoadFromDataTable(datatable, true);

        worksheet.Cells["B12"].Formula = "SUM(B2:B11)";
        worksheet.Cells["C12"].Formula = "SUM(C2:C11)";

        //Row Group 1
        for (var i = 2; i <= 6; i++)
        {
            worksheet.Row(i).OutlineLevel = 1;
            worksheet.Row(i).Collapsed = true;
        }

        //Row Group 2
        for (var i = 6; i <= 10; i++)
        {
            worksheet.Row(i).OutlineLevel = 2;
            worksheet.Row(i).Collapsed = true;
        }

        //Column Group
        for (var i = 2; i <= 4; i++)
        {
            worksheet.Column(i).OutlineLevel = 1;
            worksheet.Column(i).Collapsed = true;
        }

        pck.Save();
    }
}

http://stackoverflow.com/questions/32760210/how-to-group-rows-columns-in-epplus

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149723.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言生成随机数数组

    c语言实现获得从0~num-1的随机数组(数组元素不重复,内容是0~num-1),实现的原理是数组乱序,效率高!

    2022年4月7日
    54
  • c++迭代器iterator遍历map_iterator迭代器原理

    c++迭代器iterator遍历map_iterator迭代器原理什么是迭代器迭代器是一种可以遍历容器元素的数据类型。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。C++更趋向于使用迭代器而不是数组下标操作,因为标准库为每一种标准容器(如vector、map和list等)定义了一种迭代器类型,而只有少数容器(如vector)支持数组下标操作访问容器元素。可以通过迭代器指向你想访问容器的元素地址,通过*x打印出元素值。这和我们所熟知的指针极其类似。C语言有指针,指针用起来十分灵活高效。C++语言有迭代器,迭代器相对于指针而言功能更为丰富。vector,是数

    2025年7月1日
    3
  • vue前端ui框架_详细讲解帕米尔的春天

    vue前端ui框架_详细讲解帕米尔的春天本文章描述的是Swagger3.0的内容,与Swagger2.0内容有较大差别。接口描述在3.0中通过Swagger规范(一个JSON文件)来描述,Swagger2.0是通过在接口中提供一系列注解来描述的。 1.集成Swagger    Swagger提供了一组静态页面,可以在SpringBoot应用中集成这些静态页面,直接访问静态页面,并打开指定的Swagger规范,就可以…

    2025年6月24日
    2
  • java中补码怎么计算,二进制中补码计算简单详实的讲解

    java中补码怎么计算,二进制中补码计算简单详实的讲解本文说明一个基本的问题 补码的问题 需要说明一点补码是对负整数在计算机中存储的一种形式 另一种形式是负数在计算机中可以用符号 负数绝对值的形式表示一个负数 比如 3 存储 但是这种表示的负数有两个零 0 0 最要命的一点是不能做算术运算 比如 10 3 10 3 00001010 13 显然是错的 所以负整数必须以补码存储 负

    2025年9月25日
    3
  • 固态硬盘界的”瑞士军刀”:有这两款工具箱软件才安心

    固态硬盘界的”瑞士军刀”:有这两款工具箱软件才安心固态硬盘每天产生了多少写入量?剩余寿命还能用几年?如何你非常关心这些普通玩家经常忽视的问题,专业的固态硬盘工具箱软件将是必备的。 HardDiskSentinel能够同时支持机械和固态硬盘,依据问题扇区和接口CRC错误、Trim功能开启状况,给出硬盘的健康和性能状态,以及预计的可用剩余寿命。 新版的HardDiskSentinel还能根据硬盘型号识别出固态硬盘所用的…

    2022年6月7日
    57
  • 日本免费空间Atpages.jp老牌稳定支持PHP,CGI和2style.net多域名空间[通俗易懂]

    日本免费空间Atpages.jp老牌稳定支持PHP,CGI和2style.net多域名空间[通俗易懂] 在上一篇的法国,意大利免费空间其实就已经注意到了Atpages.jp和2style.net这两个日本的免费空间了,本来还想介绍一下hosting.kr这个韩国的免费空间,但是该空间要求韩国的D理才能申请,在网上找了半天,也没有找到免费可用的。 话说这韩国的D理真是稀缺呀,只好对hosting.kr这个免费空间作罢了。Atpages.jp这是日本一个老牌的免费空间了,提供1G空间,支持PHP,C…

    2022年7月11日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号