7

使用 ClosedXML,我正在尝试将数据添加到现有表中的现有 Excel 工作表中。最简单的方法是将表格添加到 Excel 工作表中,下面是如何执行此操作的快速示例。我不明白的是,如果你已经有一个空的表,你怎么能添加到现有的表中?

// Add a DataTable as a worksheet
            wb.Worksheets.Add(dataTable);
4

3 回答 3

6

我不知道这个问题对人们来说是不是很清楚。如果存在现有表格(通过转到“插入 -> 表格”在 Excel 中创建)并且您使用 ClosedXML 打开 Excel 文档,则将数据添加到下一行不会自动展开表格。

您可以在添加数据之前对其进行扩展:

IXLTables tsTables = thisSheet.Tables;
IXLTable firstTable = tsTables.FirstOrDefault();
if (firstTable != null)
    firstTable.InsertRowsBelow(1);
于 2016-07-07T14:47:35.917 回答
4

我有一个类似的要求,我需要将数据插入到现有的表中,该表内置了许多数据验证/注释/公式。

我发现(对我而言)最简单的解决方案是使用 Table 的ReplaceData调用。如果您在 Excel 工作表中为表提供名称,这将特别有用,因为这样您可以直接从工作簿中获取对表的引用,即:

var candidateTable = workbook.Table("Candidates");  
candidateTable.ReplaceData(candidateData, propagateExtraColumns: true);

请注意,使其正常工作的关键是设置propogateExtraColumns参数 - 这将确保您设置的任何公式/等将自动复制到创建的任何新行。

仅供参考 - 您可以通过在工作表中选择表格,单击“设计”选项卡,然后输入表格名称来设置 Excel 表格的名称:

在 Excel 中输入表格名称

于 2019-04-12T20:17:20.567 回答
4

要将 a 添加DataTable到现有工作表,请使用以下命令:

wb.Worksheet(1).Cell(1, 1).InsertTable(dataTable);

文档中的更多信息。

于 2015-08-12T09:00:52.260 回答