c# - closedxml.report中的纵横表组合
问题描述
我正在做一个项目,我正在使用 ClosedXML 在 Excel 工作表中记录一些结果。
我有以下数据结构:
PortTag Dictionary 只是 Port Id 和 Tag 的键值对(“T”、“U”、“F”或“-”)这应该产生一个如下所示的表:
这是垂直和水平版本的组合,我无法创建它。
我当前的工作表显示了我使用 SNMP 从交换机轮询的信息,如下所示:
您可以为我提供任何帮助或指导我找到有关此问题的知识来源吗?
我已经阅读了 Github Wiki 和网站上的信息 ( https://closedxml.github.io/ClosedXML.Report/docs/en/ )
非常感谢 !
解决方案
I. 如果所有Vlan
条目都具有相同的键集
您可以使用这种方法:
- 定义垂直表
Vlans
PortTag_Values
在里面定义一个水平表- 定义另一个
PortTagKeys
应该放置键的水平表
- 在代码中,添加
data
一个变量和PortTagKeys
另一个变量(请注意,为简单起见,我省略了对 null 和空集合的检查):
var template = new XLTemplate(workbook);
template.AddVariable(data);
template.AddVariable("PortTagKeys", data.Vlans[0].PortTag.Keys);
template.Generate();
二、如果Vlan
条目可能有不同的键集
在这种情况下,我建议执行预处理以获取所有键的集合并PortTag
用相同的键填充所有 s(放置-
丢失的键)。我怀疑是否有可能在“纯” ClosedXML.Report 中进行,无需预处理。
推荐阅读
- python - Python:将 3D 椭圆体(扁/长)拟合到 3D 点
- angular - 在 Angular 的 ngOnInit 中使用事件
- kubernetes - 在 GCP 上部署 Weaviate k8s 设置时无法在 API 组中列出资源“configmaps”
- ios - iOS:我的绘图弹出框出现问题,自 iOS13 以来显示效果不佳
- android - Android 应用程序在 logcat 上没有堆栈跟踪而崩溃
- java - java中的数组到堆栈,并删除运算符
- sql - 用sql加入记录?
- podman - 使用非默认网络运行 podman 创建的容器中的网络不可用
- python - 如何升级 pip 包管理器?
- drupal - 如何在树枝模板中显示内容类型自定义字段?