Как вставить данные в таблицу Excel в положение, зависящее от значения другой ячейки, с помощью ClosedXML - PullRequest
0 голосов
/ 05 июля 2019

У меня есть treeView, который мне нужно экспортировать в файл Excel. Мне нужно иметь следующий вывод:

enter image description here

После неудачного зацикливания моего treeView для экспорта его из моего кода (я попробовал несколько примеров без удачи), я решил поместить свои данные из моей базы данных в список и попытался записать каждую ячейку в зависимости от столбца с именем уровень (0, 1, 2, ...)


            var workSheet = workbook.AddWorksheet("data"); //creates the worksheet with sheetname 'data'
            workSheet.FirstRow().FirstCell().InsertData(_listGrpItems);
            workSheet.Column(1).Hide();
            workSheet.Column(3).Hide();
            workSheet.Column(4).Hide();
            workSheet.Column(5).Hide();
            workSheet.Column(6).Hide();

            foreach (IXLRow row in workSheet.Rows())
            {
                foreach (IXLCell cell in row.Cells())
                {
                    var level = row.Cell(4).Value;
                    cell.InsertCellsAfter(Convert.ToInt16(level));
                }
            }

            workbook.SaveAs(@"E:\data.xlsx");

Проблема с этим кодом в том, что цикл foreach, похоже, не работает правильно. Я получаю сообщение об ошибке в строке cell.InsertCellsAfter(Convert.ToInt16(level));: System.ArgumentOutOfRangeException : 'Number of columns to insert must be a positive number no more than 16384 Nom du paramètre : numberOfColumns'

...