closedxml.report 中的垂直和水平组合 table

Combination of vertical and horizontal table in closedxml.report

我正在做一个项目,我正在使用 ClosedXML 在 Excel sheet.

中记录一些结果

我有以下数据结构:

PortTag 字典只是端口 ID 和标签的键值对(“T”、“U”、“F”或“-”) 这应该导致 Table 看起来像这样:

这是竖版和横版的组合,我创建失败了。

我当前的 sheet 显示我使用 SNMP 从交换机轮询的信息,如下所示:

您是否可以为我提供任何帮助或指导我获取有关此问题的知识来源?

我已经阅读了 Github Wiki 和网站 (https://closedxml.github.io/ClosedXML.Report/docs/en/)

上的信息

非常感谢!

我。如果所有 Vlan 个条目具有相同的一组键

您可以使用这种方法:

  1. 定义一个垂直tableVlans
  2. 定义一个横向tablePortTag_Values里面
  3. 定义另一个水平 table PortTagKeys 应该放置键的地方

  1. 在代码中,添加 data 作为一个变量,添加 PortTagKeys 作为另一个变量(请注意,为简单起见,我省略了对 null 和空集合的检查):
var template = new XLTemplate(workbook);
template.AddVariable(data);
template.AddVariable("PortTagKeys", data.Vlans[0].PortTag.Keys);
template.Generate();
  1. 得到你想要的:

二.如果 Vlan 个条目可能有不同的键集

在这种情况下,我建议执行 pre-processing 以获取所有键的集合并使用相同的键填充所有 PortTag(将 - 用于缺少的键).我怀疑在没有 pre-processing.

的 "pure" ClosedXML.Report 中是否可行