У меня есть шаблонная книга Excel 2016 с областью, которую пользователи могут заполнять данными (происходит некоторое копирование + формулы).Пользователи запускают макрос VBA, чтобы экспортировать его в XML-data
.У меня проблема в том, что вся область экспорта XML не всегда заполнена одинаково (много разбросанных данных), а экспортированные XML-файлы заканчиваются пустыми тегами, от которых я бы хотел избавиться, но не уверен, как это сделать.it.
Код VBA выглядит следующим образом:
Sub XML_export()
XMLName = "C:\XML" & "\" & "Transaction_SERVICE_" & Format(Now, "yyyymmddhhmmss") & ".xml"
ActiveWorkbook.XmlMaps("Data_Map").Export Url:=XMLName
End Sub
и схема XSD для файла XML:
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Transaction">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Item" type="xs:string" />
<xs:element minOccurs="0" name="Description" />
<xs:element minOccurs="0" name="Quantity" type="xs:string" />
<xs:element minOccurs="0" name="FromWHS" type="xs:string" />
<xs:element minOccurs="0" name="ToWHS" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Это все равно закончится тем, что даст мне пустую метку <Transaction/>
для каждой незаполненной строки в листе Excel.Как я могу просто получить 4 заполненных тега Transaction
в файле XML?В настоящее время он по-прежнему будет всегда экспортировать 10 Transaction
тегов, причем 6 из них не заполнены (на основе примера).XSD
ответ?