2010-11-23 42 views
6

J'essaie d'utiliser les outils Excel 2007 XML Developers, mais je ne suis pas capable d'exporter un simple ensemble de données répétitives simples.Comment puis-je exporter des données récurrentes simples à partir d'Excel comme xml?

J'ai une feuille de calcul avec en-têtes et colonnes de données.

J'ai un xsd qui décrit (je pense) une carte des données, avec le premier élément répétitif.

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema targetNamespace="http://tempuri.org/FeedbackLookup.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="FeedbackLookup"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="RevieweeInfo" maxOccurs="unbounded"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="RevieweeName" type="xs:string"> 
       </xs:element> 
       <xs:element name="RevieweeTitle" type="xs:string"> 
       </xs:element> 
       <xs:element name="ReviewLevel" type="xs:string"> 
       </xs:element> 
       <xs:element name="RecipientName" type="xs:string" /> 
       <xs:element name="RecipientEmail" type="xs:string" /> 
       <xs:element name="RecipientTitle" type="xs:string" /> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

Et mappé cela aux en-têtes dans mon fichier xml.

Excel XML Pane

Mais quand je clique Verify Map for Export je reçois la fenêtre d'erreur suivant:

A mapped element's relationship with other elements cannot be preserved

Les éléments sont tous mis en correspondance avec la même page, et sont toutes les colonnes de données régulières.

Excel Header Row

Qu'est-ce que je fais mal? À ce stade serait-il plus rapide d'écrire le VBA naïf pour créer le XML?

+0

Désolé pour la longueur, mais je pense que toutes les informations sont nécessaires. –

+1

J'ai eu ce problème quand j'ai fait glisser tous les champs de leur propre chef, en faisant glisser le ns2: RevieweeInfo je n'ai eu aucun problème! – Peter

Répondre

2

Je ne suis pas sûr si cela se qualifie comme une réponse ... mais votre xsd a bien fonctionné pour moi.

Voici le code XML exporté:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ns1:FeedbackLookup xmlns:ns1="http://tempuri.org/FeedbackLookup.xsd"> 
    <ns1:RevieweeInfo> 
     <ns1:RevieweeName>1</ns1:RevieweeName> 
     <ns1:RevieweeTitle>1</ns1:RevieweeTitle> 
     <ns1:ReviewLevel>1</ns1:ReviewLevel> 
     <ns1:RecipientName>1</ns1:RecipientName> 
     <ns1:RecipientEmail>1</ns1:RecipientEmail> 
     <ns1:RecipientTitle>1</ns1:RecipientTitle> 
    </ns1:RevieweeInfo> 
    <ns1:RevieweeInfo> 
     <ns1:RevieweeName>2</ns1:RevieweeName> 
     <ns1:RevieweeTitle>2</ns1:RevieweeTitle> 
     <ns1:ReviewLevel>2</ns1:ReviewLevel> 
     <ns1:RecipientName>2</ns1:RecipientName> 
     <ns1:RecipientEmail>2</ns1:RecipientEmail> 
     <ns1:RecipientTitle>2</ns1:RecipientTitle> 
    </ns1:RevieweeInfo> 
</ns1:FeedbackLookup> 

Modifier capture d'écran

alt text

+0

Aviez-vous des en-têtes et plus d'une rangée de données, ou juste une rangée de données? –

+0

@C. Ross Posté résultat de l'exportation avec deux lignes –

+0

@belisarius, si ce n'est pas trop demander, pouvez-vous mettre en capture d'écran votre cartographie et l'ajouter à votre réponse? –

0

Comme par @ commentaire de Petoj, essayez de faire glisser le NS2: élément RevieweeInfo sur la feuille de calcul au lieu de chaque champ individuellement.

Cela a résolu ce problème exact pour moi, mais j'ai d'abord dû créer une feuille de calcul distincte qui ne contenait que des colonnes correspondant aux attributs de l'élément cible.

0

Découvrez ce blog sur la même erreur.

http://itbadass.blogspot.com/2010/11/converting-excel-to-xml-mapped-elements.html

On dirait qu'il peut être Excel « ne pas voir » toutes les données dont il avait besoin pour. Sa solution consistait à enregistrer le fichier de données dans un fichier CSV, puis à l'ouvrir et à réessayer l'importation. Le principal avantage que je peux voir de faire serait de supprimer toute mise en forme de table ou tout type de données géniales qui pourraient faire trébucher Excel. Je devais également mettre mes données les unes à côté des autres dans des colonnes et m'assurer que je faisais glisser l'icône de l'élément sur la première ligne de données pour la colonne (par opposition au nom de la colonne) pour obtenir ma correspondance correcte.