C# Значок многоуровневого сворачивания EPPlus не отображается - PullRequest
0 голосов
/ 21 июня 2020

Мне помогло одно из сообщений SO { ссылка } для многоуровневого коллапса. Как установить многоуровневые складные контуры с помощью EPPlus.

Я пытаюсь научиться делать многоуровневое сворачивание строк и столбцов, и мой код работает. единственная проблема - многократное раскрытие и сворачивание + / - символ, не отображающий в файле Excel после генерации. скажите, пожалуйста, чего не хватает в моем коде. вот мой код.

    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(@"d:\Row_Grouping_Test2.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 = 7; i <= 11; i++)
        {
            worksheet.Row(i).OutlineLevel = 1;
            //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();
    }

Есть две группы строк 1 и 2. для 1 группы отображается значок разворачивания, но для группы 2 не отображается значок разворачивания и сворачивания. определенно я что-то упускаю. первая группа начинается с 2 по 6, а вторая группа начинается с 7 до 11. поэтому я ожидаю два значка развертывания и свертывания для двух групп, но приближается один.

см. пример снимка экрана, где две развернутые группы свертывания показ. на снимке экрана я показываю две стрелки, чтобы указать, что я хочу, чтобы в моем excel были те же два значка разворачивания. скажите, пожалуйста, чего не хватает в моем коде. спасибо введите описание изображения здесь

...