【问题标题】:How to group rows/columns in EPPlus如何在 EPPlus 中对行/列进行分组
【发布时间】:2015-09-24 11:29:24
【问题描述】:

有没有办法在 EPPlus 中实现this? 我在互联网上唯一能找到的就是对特定数据进行分组 例如:

AAA     --->    AAA     5 occurrences
AAA             BBB     2 occurences
BBB
BBB    
AAA
AAA
AAA

但在视觉上不像截图中的那样

【问题讨论】:

    标签: c# excel openxml epplus


    【解决方案1】:

    看起来你想做折叠的行和列轮廓。这应该演示如何做到这一点:

    [TestMethod]
    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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 2019-11-23
      相关资源
      最近更新 更多