EPPlus C# 将数据导出到 Excel。 Table 数据覆盖名称框而不是 "Insert" 并保留其他单元格

EPPlus C# Export data to Excel. Table data overwrites Namebox instead of "Insert" and preserving other cells

我正在使用 EPPlus C# 库生成 Excel 文件。 Excel 模板将填充来自 DataTable 的 SQL 服务器数据。模板文件使用名称框,数据填充在这些名称框中。 问题是,例如。我在 A1 位置有名称框

B1 位置还有另一个名称框

当A1填满单行数据时..没问题。但是如果 A1 中的数据有多行,它会覆盖 A2 名称框(A2 的名称框消失了)。

A2 的名称框应下移至 A6。

(我们在一个单元格中执行 "Insert" 时看到的相同行为会将其他单元格向前移动而不是覆盖它们)。

那么 Rows 集合中的 Insert 方法呢?

// Insert row at the 4the position.
worksheet.Rows.Insert(3);

我通过使用以下逻辑插入新行解决了这个问题:

   // Get current cell's address
                            string oldAddress = nameBox.Start.Address;
                            // insert new rows in worksheet to preserve other nameboxes
                            nameBox.Worksheet.InsertRow(nameBox.Start.Row, dt.Rows.Count);
                            // move to old address
                            nameBox.Address = oldAddress;

                            // Fill Name box with Datatable
                            nameBox.LoadFromDataTable(dt, printHeaders);