web-dev-qa-db-fra.com

Convertir rapidement XML en Excel

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. 

9
Bajji

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>
6
pgfearo

Pourquoi si compliqué? Ouvrez simplement le fichier avec Fichier-> Ouvrir Choisissez xml et chargez-le. Voyez ce qui va arriver.

26
Friedrich

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
2
Roland Penner

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.

1
Gregology

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.

0
dcp
  1. Ouvrez le fichier XML. 
  2. Faites un clic droit sur la page et choisissez "Exporter vers Microsoft Excel". 
  3. Cliquez sur la page Excel qui s'ouvre et choisissez importer. 
  4. Excel vous informera qu'il créera son propre schéma. Hit OK.
  5. Excel vous demandera où placer les données et passera par défaut à la cellule $ A $ 1. Hit OK.
  6. Terminé :)
0
Eric

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

0
Uli Bethke

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.

0
Zac Zeng