Si vous utilisez Excel 2007 et que vous voulez utiliser XSLT, votre meilleur pari serait probablement utiliser le EXPath Zip Du Module fonctions pour modifier un Excel existant .xslx fichier.
Mon option préférée, cependant, serait d'utiliser un petit Excel Macro VBA.
J'ai inclus des exemples de code ci-dessous pour une procédure VBA appelé la "charge" - cet exemple utilise le DOM XML, de sorte que tous 112 K lignes de votre XML sera d'abord chargé dans la mémoire, mais si la performance n'est pas un problème à sa plus simple que le SAX alternative.
Vous auriez besoin de les modifier xpathToExtractRow pour répondre à vos XML d'entrée de la structure. Il y a aussi l'hypothèse que, dans l'immédiat nœuds enfants de l'XML de l'élément de ligne contiennent les données de la cellule que vous souhaitez importer en tant que nœuds de texte, si non, vous aurez besoin d'utiliser un SelectNode appeler pour obtenir les données dont vous avez besoin.
Privé dom Comme DOMDocument60
Public Sous load()
Dim nodeList As IXMLDOMNodeList
Dim nodeRow As IXMLDOMNode
Dim nodeCell As IXMLDOMNode
Dim rowCount As Integer
Dim cellCount As Integer
Dim rowRange As Range
Dim cellRange As Range
Dim sheet As Worksheet
Dim xpathToExtractRow As String
xpathToExtractRow = "/feed/row"
Set dom = New DOMDocument60
dom.load ("c:\test\source.xml")
Set sheet = ActiveSheet
Set nodeList = dom.SelectNodes(xpathToExtractRow)
rowCount = 0
For Each nodeRow In nodeList
rowCount = rowCount + 1
cellCount = 0
For Each nodeCell In nodeRow.ChildNodes
cellCount = cellCount + 1
Set cellRange = sheet.Cells(rowCount, cellCount)
cellRange.Value = nodeCell.Text
Next nodeCell
Next nodeRow
Pour le one-liner pour travailler, vous devez modifier le .xml.note code afin de refléter la structure de votre fichier XML.
Prendre pour exemple le contenu suivant de myfile.xml:
<xml><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note><note><to>Jason</to><from>Alice</from><heading>Help</heading><body>I can't figure this out.</body></note></xml>
Vous pouvez affecter le XML dans une variable comme ceci:
[xml]$data = Get-Content myfile.xml
Maintenant, vous pouvez faire toutes sortes de choses comme:
$data.GetElementsByTagName('note')
ou tout simplement
$data.xml.note.from
Pour une raison quelconque l'un liner entraîné une erreur pour moi, mais la rupture de l'affecter à une variable travaillé. Merci Roland.
Je suggère d'utiliser Eurostat SDMX Convertisseur, c'est un programme java de sorte qu'il est indépendant de la plateforme. Utiliser le fichier XML Générique que l'entrée et la Structure XMLfile que le DSD fichier.
Je ne trouve aucun "XML générique" option dans ce logiciel.
Probablement juste de lire le fichier XML dans certains langage de haut niveau (JAVA, C#, etc. toutes disposent de telles installations), écrire le fichier comme une .fichier csv, puis l'importer dans excel à l'aide de Données->fonction d'Importation.
Il peut y avoir de meilleures façons, c'est la manière la plus simple cependant.
dans la même ligne de ce commentaire, encore un autre intermédiaire peut être R de plates-formes et rsdmx forfait pour la R pour lire facilement vos SDMX jeu de données dans R, de les convertir en un tableau de R objet (data.frame) et de l'exporter au format csv ou excel. Voir github.com/opensdmx/rsdmx/wiki pour des exemples comment lire SDMX de données, et de les convertir à data.frame, et ensuite utiliser write.csv ou write.table d'exporter vos données.
Vous pouvez utiliser http://xmlgrid.net/xmlToExcel.html pour convertir du XML pour Excel. XmlGrid vous permet de sélectionner la racine ou de tout autre élément de votre document XML être converti en fichier Excel. La conversion d'un fichier Excel affichera une feuille ou plusieurs feuilles dépend de la structure de votre document XML.
Si vous utilisez Excel 2007 et que vous voulez utiliser XSLT, votre meilleur pari serait probablement utiliser le EXPath Zip Du Module fonctions pour modifier un Excel existant .xslx fichier.
Mon option préférée, cependant, serait d'utiliser un petit Excel Macro VBA.
J'ai inclus des exemples de code ci-dessous pour une procédure VBA appelé la "charge" - cet exemple utilise le DOM XML, de sorte que tous 112 K lignes de votre XML sera d'abord chargé dans la mémoire, mais si la performance n'est pas un problème à sa plus simple que le SAX alternative.
Vous auriez besoin de les modifier
xpathToExtractRow
pour répondre à vos XML d'entrée de la structure. Il y a aussi l'hypothèse que, dans l'immédiat nœuds enfants de l'XML de l'élément de ligne contiennent les données de la cellule que vous souhaitez importer en tant que nœuds de texte, si non, vous aurez besoin d'utiliser unSelectNode
appeler pour obtenir les données dont vous avez besoin.Privé dom Comme DOMDocument60
Public Sous load()
End Sub
D'Entrée d'échantillon XML:
OriginalL'auteur pgfearo
Pourquoi faire si compliqué? Il suffit d'ouvrir le Fichier avec Fichier->Ouvrir
choisissez xml et de le charger. Voir ce qui va arriver.
Le XML besoin d'avoir n'importe quel format pour que cela fonctionne?
OriginalL'auteur Friedrich
Si vous avez Windows 7+, l'utilisation de PowerShell. C'est assez rapide et facile.
One-liner:
Pour le one-liner pour travailler, vous devez modifier le .xml.note code afin de refléter la structure de votre fichier XML.
Prendre pour exemple le contenu suivant de myfile.xml:
Vous pouvez affecter le XML dans une variable comme ceci:
Maintenant, vous pouvez faire toutes sortes de choses comme:
ou tout simplement
OriginalL'auteur Roland Penner
Je suggère d'utiliser Eurostat SDMX Convertisseur, c'est un programme java de sorte qu'il est indépendant de la plateforme. Utiliser le fichier XML Générique que l'entrée et la Structure XMLfile que le DSD fichier.
OriginalL'auteur Gregology
Probablement juste de lire le fichier XML dans certains langage de haut niveau (JAVA, C#, etc. toutes disposent de telles installations), écrire le fichier comme une .fichier csv, puis l'importer dans excel à l'aide de Données->fonction d'Importation.
Il peut y avoir de meilleures façons, c'est la manière la plus simple cependant.
rsdmx
forfait pour la R pour lire facilement vos SDMX jeu de données dans R, de les convertir en un tableau de R objet (data.frame
) et de l'exporter au format csv ou excel. Voir github.com/opensdmx/rsdmx/wiki pour des exemples comment lire SDMX de données, et de les convertir àdata.frame
, et ensuite utiliserwrite.csv
ouwrite.table
d'exporter vos données.OriginalL'auteur dcp
Vous pouvez utiliser http://xmlgrid.net/xmlToExcel.html pour convertir du XML pour Excel. XmlGrid vous permet de sélectionner la racine ou de tout autre élément de votre document XML être converti en fichier Excel. La conversion d'un fichier Excel affichera une feuille ou plusieurs feuilles dépend de la structure de votre document XML.
OriginalL'auteur Zac Zeng
OriginalL'auteur Eric
Nous avons créé une vidéo qui montre étape par étape les instructions sur la comment convertir le XML pour Excel.
Le XML conversion vidéo passe par les étapes suivantes
Télécharger les fichiers XML à Flexter (notre gratuit convertisseur XML)
Convertir le fichier XML des fichiers texte (Valeurs Séparées par des tabulations, TSV)
Importer les fichiers texte Excel
Rejoindre les ensembles de données dans Excel
Analyser les données dans un fichier Excel PowerPivot table
OriginalL'auteur Uli Bethke