I.Если все Vlan
записи имеют одинаковый набор ключей
Вы можете использовать этот подход:
- Определить вертикальную таблицу
Vlans
- Определить горизонтальную таблицу
PortTag_Values
внутри - Определить еще один горизонтальный стол
PortTagKeys
, в котором должны быть расположены ключи
В коде добавьте
data
в качестве одной переменной и
PortTagKeys
в качестве другой (обратите внимание, что для простоты я пропускаю проверки на нулевой и пустой набор):
var template = new XLTemplate(workbook);
template.AddVariable(data);
template.AddVariable("PortTagKeys", data.Vlans[0].PortTag.Keys);
template.Generate();
Получите то, что вы хотели:
II.Если Vlan
записи могут иметь разные наборы ключей
В этом случае я бы предложил выполнить предварительную обработку, чтобы получить коллекцию всех ключей и заполнить все PortTag
одинаковыми ключами (добавив-
за отсутствующие ключи).Сомневаюсь, что это можно сделать в «чистом» ClosedXML.Report, без предварительной обработки.