封闭式XML.report

时间:2019-05-06 12:37:03

标签: c# excel closedxml

我正在研究一个项目,并且正在使用ClosedXML在Excel工作表中记录一些结果。

我具有以下数据结构:

Class Diagramm Switch class

PortTag词典只是端口ID和标记(“ T”,“ U”,“ F”或“-”)的键值对 这将导致一个表如下所示:

Table as needed

这是垂直和水平版本的组合,我无法创建它。

我的当前工作表显示我从SNMP交换机上轮询的信息,其外观如下:

current sheet

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

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

非常感谢您!

1 个答案:

答案 0 :(得分:1)

I。如果所有Vlan条目都具有相同的键集

您可以使用这种方法:

  1. 定义垂直表Vlans
  2. 在内部定义水平表PortTag_Values
  3. 定义另一个应放置键的水平表PortTagKeys

enter image description here

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

II。如果Vlan条目可能具有不同的键集

在这种情况下,我建议进行预处理以获取所有键的集合,并用相同的键填充所有PortTag(将-用作丢失的键)。我怀疑是否可以在不进行预处理的情况下在“纯” ClosedXML.Report中进行操作。