Как я могу сгенерировать XML-отображение в Excel-списке? - PullRequest
0 голосов
/ 07 мая 2019

Основная цель: у меня есть заданный файл XML и список имен клиентов в Excel.Я хотел бы создать сопоставление XML, чтобы с ним можно было создать новый XML-файл.

Моя проблема: Excel отображает не весь список (столбцы), а только одну ячейку.

Это мой XML-файл:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profiles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///C:/Users/baj426/Documents/Altova/XMLSpy2018/Examples/test.xsd">
    <Profile CompanyId="" Duns="">
        <Tab name="Tab_Address" label="Address">
            <Group Name="Group_IDs">
                <Field Value="true" Name="Field_IDs_SIM_Strategic"/>
            </Group>
        </Tab>
    </Profile>
</Profiles>

Это моя XML-схема, сгенерированная XMLSPy:

<?xml version="1.0" encoding="UTF-8"?>

<!-- W3C Schema generated by XMLSpy v2018 rel. 2 (x64) (http://www.altova.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Tab">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Group"/>
            </xs:sequence>
            <xs:attribute name="name" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Tab_Address"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="label" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Address"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="Field">
        <xs:complexType>
            <xs:attribute name="Value" use="required" type="xs:boolean"/>
            <xs:attribute name="Name" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Field_IDs_SIM_Strategic"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="Group">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Field"/>
            </xs:sequence>
            <xs:attribute name="Name" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Group_IDs"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="Profile">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Tab"/>
            </xs:sequence>
            <xs:attribute name="CompanyId" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value=""/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="Duns" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value=""/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="Profiles">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Profile"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Это пример кода того, как я хотел бы иметь его:

Это пример XSD:

<?xml version="1.0" encoding="UTF-8"?>

<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
  <orderperson>John Smith</orderperson>
  <shipto>
    <name>Ola Nordmann</name>
    <address>Langgt 23</address>
    <city>4000 Stavanger</city>
    <country>Norway</country>
  </shipto>
  <item>
    <title>Empire Burlesque</title>
    <note>Special Edition</note>
    <quantity>1</quantity>
    <price>10.90</price>
  </item>
  <item>
    <title>Hide your heart</title>
    <quantity>1</quantity>
    <price>9.90</price>
  </item>
</shiporder> 

XML-файл после сопоставления с некоторыми значениями из Excel

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<shiporder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <item>
        <quantity>1</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>2</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>3</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>4</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>5</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>6</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>7</quantity>
        <price>120</price>
    </item>
    <item>
        <quantity>8</quantity>
        <price>120</price>
    </item>
</shiporder>

1 Ответ

0 голосов
/ 07 мая 2019

Excel не может экспортировать XML-файлы с более чем одним (!) Уровнем иерархии, поэтому XML-файл, который вы хотите создать, не может быть экспортирован Excel, если вы не используете VBA для создания XML.

...