使用 ClosedXML,我正在尝试将数据添加到现有表中的现有 Excel 工作表中。最简单的方法是将表格添加到 Excel 工作表中,下面是如何执行此操作的快速示例。我不明白的是,如果你已经有一个空的表,你怎么能添加到现有的表中?
// Add a DataTable as a worksheet
wb.Worksheets.Add(dataTable);
我不知道这个问题对人们来说是不是很清楚。如果存在现有表格(通过转到“插入 -> 表格”在 Excel 中创建)并且您使用 ClosedXML 打开 Excel 文档,则将数据添加到下一行不会自动展开表格。
您可以在添加数据之前对其进行扩展:
IXLTables tsTables = thisSheet.Tables;
IXLTable firstTable = tsTables.FirstOrDefault();
if (firstTable != null)
firstTable.InsertRowsBelow(1);
我有一个类似的要求,我需要将数据插入到现有的表中,该表内置了许多数据验证/注释/公式。
我发现(对我而言)最简单的解决方案是使用 Table 的ReplaceData调用。如果您在 Excel 工作表中为表提供名称,这将特别有用,因为这样您可以直接从工作簿中获取对表的引用,即:
var candidateTable = workbook.Table("Candidates");
candidateTable.ReplaceData(candidateData, propagateExtraColumns: true);
请注意,使其正常工作的关键是设置propogateExtraColumns参数 - 这将确保您设置的任何公式/等将自动复制到创建的任何新行。
仅供参考 - 您可以通过在工作表中选择表格,单击“设计”选项卡,然后输入表格名称来设置 Excel 表格的名称: