Мне помогло одно из сообщений 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 были те же два значка разворачивания. скажите, пожалуйста, чего не хватает в моем коде. спасибо введите описание изображения здесь