Я хочу объединить строки в моем экспортированном Excel, используя epplus. Приведенный ниже код работает только в том случае, если в одном столбце указано одно и то же значение.
например (я объединяю одно и то же значение в строке Col1):
![img1](https://i.stack.imgur.com/NeBuY.png)
Но, если у меня есть другая таблица, подобная этой, код, получающий ошибку, в то время как выполняется слияние (я объединяю одно и то же значение в строках Col1 и Col2)
![img2](https://i.stack.imgur.com/EhSjH.png)
Пожалуйста, помогите мне исправить код.
void mergeCells(DataTable dt, int startIndex, int totalColumns, ExcelWorksheet ws)
{
if (totalColumns == 0) return;
int i, count = 1;
ArrayList lst = new ArrayList();
lst.Add(ws.Cells[2, 1]);
var ctrl = ws.Cells[startIndex + 1, 1];
for (i = 1; i <= dt.Rows.Count; i++)
{
ExcelRange nextMerge = ws.Cells[i + totalColumns + 1, 1];
if (ctrl.Text == nextMerge.Text)
{
count++;
lst.Add(ws.Cells[i, 1]);
}
else
{
if (count > 1)
{
ws.Cells[i + 1, 1, i + count, 1].Merge = true;
mergeCells(new DataTable(lst.ToString()), startIndex + count, totalColumns, ws);
}
count = 1;
lst.Clear();
ctrl = ws.Cells[i + 2, startIndex];
lst.Add(ws.Cells[i, 1]);
}
}
if (count > 1)
{
ws.Cells[startIndex + 1, 1, startIndex + count, 1].Merge = true;
mergeCells(new DataTable(lst.ToString()), startIndex + count, totalColumns - 1, ws);
}
count = 1;
lst.Clear();
}