首页 > 解决方案 > ClosedXML 将列表中的数据插入现有的正确 Excel 表(命名范围)c#

问题描述

有一个类似的问题,似乎没有答案(也许没有答案)。如何从 Closed XML 中“更新”现有的 Excel 表(命名范围)。我知道如何获取表格信息,并删除现有数据(见下文)

    var ws = wb.Worksheet(sheetName);
    var table = ws.Table("data");
    table.Clear();

然后 ??我有一个名为“listdata”的列表,它与表头完全匹配......

我是否需要像这样一次遍历一个表(这似乎是一种浪费):

foreach (var item in listdata){table.InsertRowsBelow(1); ws.Cells(2,1).InsertData(item)}

我想如果你做这样的事情可能会更简单:

table.InsertRowsBelow(listdata.Count()); ws.Cells(2,1).InsertData(listdata);

或者有没有办法批量加载到“表”中(类似于 .AddRange(listdata) 或 .Union(listdata))。目前,我只是删除整个工作表,然后重新创建工作表并粘贴新表:

      wb.Worksheets.Delete(sheetName);
      var ws = wb.Worksheets.Add(sheetName);
      ws.Cell(1, 1).InsertTable(listdata, "data", true);

标签: c#excelclosedxml

解决方案


https://github.com/ClosedXML/ClosedXML/pull/932中对IXLTable. 您可能对IXLTable.ReplaceData(data)和感兴趣IXLTable.AppendData(data)


推荐阅读