使用重复元素将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按如下方式列出数据:

http://i.stack.imgur.com/J6LgP.png

我宁愿将值映射如下所示:

http://i.stack.imgur.com/Lf7kn.png

请注意,行数由操作元素的数量决定,custom_field元素映射到单独的列而不是行。

Excel是否有一些内置的function来轻松控制这个?

我已经编写了VBAmacros来循环遍历XML文件的元素,并将其映射为我想要的,但这是非常密集的处理器。 我只是想看看是否有比我今天做的更好的方法。