使用重复元素将XML导入到Excel
我有以下架构:
<xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="transaction" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="id_number"/> <xs:element type="xs:string" name="first_name"/> <xs:element type="xs:string" name="last_name"/> <xs:element type="xs:string" name="email"/> <xs:element name="custom_field" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="id" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="action" maxOccurs="unbounded" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="amount"/> <xs:element type="xs:string" name="action_type"/> <xs:element type="xs:string" name="date"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
当我按照这个模式导入一个XML文件时,Excel按如下方式列出数据:
我宁愿将值映射如下所示:
请注意,行数由操作元素的数量决定,custom_field元素映射到单独的列而不是行。
Excel是否有一些内置的function来轻松控制这个?
我已经编写了VBAmacros来循环遍历XML文件的元素,并将其映射为我想要的,但这是非常密集的处理器。 我只是想看看是否有比我今天做的更好的方法。