Quel est le moyen le plus rapide (avec un minimum d’effort, pas de super performance) de convertir des lignes de 112 Ko en XML en vue Excel.
Si vous utilisez Excel 2007 et souhaitez utiliser XSLT, le mieux serait probablement d'utiliser les fonctionnalités EXPath Zip Module pour modifier un fichier Excel .xslx existant.
Mon choix serait toutefois d’utiliser une petite macro Excel VBA.
J'ai inclus un exemple de code ci-dessous pour une procédure VBA appelée "load" - cet exemple utilise le DOM XML, de sorte que toutes les lignes de 112 Ko de votre XML seront d'abord chargées en mémoire, mais si les performances ne sont pas un problème, il est plus simple que SAX. alternative.
Vous devrez modifier xpathToExtractRow
pour l'adapter à votre structure d'entrée XML. Il est également supposé que les nœuds enfants immédiats de l'élément de ligne XML contiennent les données de cellule que vous souhaitez importer en tant que nœuds de texte. Sinon, vous devrez utiliser un appel SelectNode
pour obtenir les données dont vous avez besoin.
Dom privé comme DOMDocument60
Public Sub 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
End Sub
Exemple de saisie XML:
<?xml version="1.0" encoding="utf-8"?>
<feed>
<row>
<firstname>joe</firstname>
<lastname>smith</lastname>
<country>jamaica</country>
</row>
<row>
<firstname>bill</firstname>
<lastname>coots</lastname>
<country>uk</country>
</row>
</feed>
Pourquoi si compliqué? Ouvrez simplement le fichier avec Fichier-> Ouvrir Choisissez xml et chargez-le. Voyez ce qui va arriver.
Si vous avez Windows 7+, utilisez PowerShell. C'est assez rapide et facile.
Bon mot:
([xml](Get-Content myfile.xml)).xml.note | Export-Csv myoutput.csv
Pour que one-liner fonctionne, vous devez modifier le code .xml.note afin de refléter la structure de votre fichier XML.
Prenons par 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 à une variable comme celle-ci:
[xml]$data = Get-Content myfile.xml
Maintenant, vous pouvez faire toutes sortes de choses comme:
$data.GetElementsByTagName('note')
ou simplement
$data.xml.note.from
Je suggère d’utiliser Eurostat SDMX Converter , c’est un programme Java, il est donc indépendant de la plate-forme. Utilisez le fichier XML générique en tant qu'entrée et le fichier XML de structure en tant que fichier DSD.
Il suffit probablement de lire le code XML dans un langage évolué (Java, C #, etc.), d'écrire le fichier sous forme de fichier .csv, puis de l'importer dans Excel à l'aide de la fonction Données-> Importer.
Il y a peut-être de meilleurs moyens, mais c'est un moyen simple.
Nous avons créé une vidéo qui montre des instructions étape par étape sur comment convertir XML en Excel .
La vidéo de conversion XML passe par la séquence d'étapes suivante
Téléchargez des fichiers XML sur Flexter (notre convertisseur XML gratuit)
Convertir le XML en fichiers texte (valeurs séparées par des tabulations, TSV)
Importer les fichiers texte dans Excel
Joindre les ensembles de données dans Excel
Analyser les données dans une table Excel PowerPivot
Vous pouvez utiliser http://xmlgrid.net/xmlToExcel.html pour convertir XML en Excel. XmlGrid vous permet de sélectionner la racine ou tout autre élément de votre document XML à convertir en fichier Excel. Le fichier Excel converti aura une ou plusieurs feuilles selon la structure de votre document XML.