Comment lire Excel XML (C#)
Je me demande si il ya un moyen facile de lire Excel 2010 XML?
Ce XML a une structure différente que j'ai utilisé pour lire.
Surtout ss:attribut index (ss:Index**="7") rend les choses un peu plus compliquées
MODIFIER:
Pour mieux expliquer:
- J'ai un fichier avec l'extension XML qui peut être ouvert dans Excel
- Je suis à la recherche d'un moyen de lire cette feuille programically (ex: copie de DataTable)
- Remarqué ce n'est pas commun XML j'ai l'habitude de travailler
- XML définit les champs sur le début, que l'utilisation de lignes, de la CELLULE et des balises de DONNÉES
- Ce qui m'a surpris, c'est quand il y a par exemple 3 champs (cellules) mais le 2ème champ n'est pas la valeur de ce champ est "sauté" dans le XML, mais le 3ème champ a d'autres 'index' attribut par exemple: ss:Index**="3" (qui indique que c'est sur la 2ème position de l'index droit doit être "3"
fragment d'exemple XML
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="String">Johny</Data></Cell>
<Cell ss:Index="3"><Data ss:Type="String">NY</Data></Cell>
Eh bien, je peux lire dans ton post. Quels sont exactement ce que vous cherchez?
À la recherche de moyen facile de disons convertir Excel fichier enregistré au format XML pour DataTable. Je sais comment le processus de XML mais je n'ai de problème avec ss:attribut Index (utilisé lorsque la cellule est vide)
Il pourrait aider à expliquer que problème alors.
Ajout de plus d'explication détaillée puis
À la recherche de moyen facile de disons convertir Excel fichier enregistré au format XML pour DataTable. Je sais comment le processus de XML mais je n'ai de problème avec ss:attribut Index (utilisé lorsque la cellule est vide)
Il pourrait aider à expliquer que problème alors.
Ajout de plus d'explication détaillée puis
OriginalL'auteur Maciej | 2012-10-15
Vous devez vous connecter pour publier un commentaire.
OK j'ai enfin trouvé la solution ici: http://www.codeproject.com/Articles/32370/Import-Excel-File-to-DataSet#xx
Ci-dessous un exemple de code peu adopté à mes besoins.
C'est pour toutes fins utiles, une excellente solution, néanmoins attention à des noms de colonne en double, ce code n'est pas de les prendre en compte et doit être modifié dans le cas où ils sont rencontrés.
OriginalL'auteur Maciej
Vous pouvez essayer avec ce code
avec la Valeur de la propriété sur ce bloc si (nType == XmlNodeType.Attribut) {var result = textReader.Valeur}
Pas vraiment... Quand je l'ai fait: while (textReader.Read()) De La Console.WriteLine( textReader.NodeType +" -> "+textReader.Valeur ); Tout attribut a été répertorié
OriginalL'auteur Aghilas Yakoub
Même sans coulmn type de travail bien aussi. merci !!!
ont de l'échantillon pour sans coulmn type:
OriginalL'auteur mansi
OriginalL'auteur mansi
Essayer de le officielle de l'API première (Microsoft Open XML SDK).
Oui c'est pour la lecture OOXML conteneurs. Cependant, vous avez à faire un travail supplémentaire pour extraire le XML brut, et de la traiter, alors pourquoi ne pas éviter tout cela et de simplement traiter les conteneurs directement?
OriginalL'auteur Christian Hayter
OriginalL'auteur mansi