我试图让excel输出一个特定的xml格式,其中有一个元素嵌入在另一个元素中。见下文。但是,excel只允许我导出为xml。如果我没有在Formula元素中嵌入Process元素,我可以导出为xml,但我需要嵌入它们以与最终软件进行通信。下面是我需要输出的xml和我输入的xsd。有什么我想念的吗?
需要XML输出:
<Formula>
<Name>My Formula</Name>
<Process>
<Ing>90000001</Ing>
<ReqAmount>14</ReqAmount>
</ProcessInput>
<Process>
<Ing>90000002</Ing>
<ReqAmount>5</ReqAmount>
</Process> </Formula>
Process块需要无限重复
XSD:
<xs:element name="Formula">
<xs:complexType>
<xs:choice>
<xs:element name="Name" type="xs:string"/>
<xs:element name = "Process" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Ing" type="xs:string"/>
<xs:element name="ReqAmount" type="xs:double"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
我得到的错误是“无法保存或导出XML数据。此工作簿中的XML映射不可导出。”
谢谢!
答案 0 :(得分:0)
如果Excel工作表实际上只包含一个公式,那么以下内容将起作用:
XSD:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Formula">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element name="Process" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:int" name="Ing"/>
<xs:element type="xs:int" name="ReqAmount"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Excel中:
如您所见,字段Name
已被拖至A1
,而Process
已被拖至A2
。
这是可导出的,并导致XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Formula>
<Name>MyFormula</Name>
<Process>
<Ing>90000001</Ing>
<ReqAmount>14</ReqAmount>
</Process>
<Process>
<Ing>90000002</Ing>
<ReqAmount>5</ReqAmount>
</Process>
<Process>
<Ing>90000003</Ing>
<ReqAmount>123</ReqAmount>
</Process>
<Process>
<Ing>90000004</Ing>
<ReqAmount>456</ReqAmount>
</Process>
</Formula>