XML (Extensible Markup Language) est similaire à HTML mais utilise des balises différentes pour définir les objets. Il est utilisé pour stocker et transporter des données sans dépendre d’outils logiciels ou matériels. Dans certains cas, nous pouvons avoir besoin d’exporter des données de XML vers Excel (XLSX ou XLS) pour un traitement ultérieur. Les fichiers Excel sont largement utilisés pour stocker et organiser les données. Dans cet article, nous allons apprendre à convertir XML en Excel à l’aide de C#.
Les sujets suivants seront traités dans cet article :
- API de conversion C# XML vers Excel
- Convertir XML en Excel
- Exporter des colonnes spécifiques de XML vers Excel
API de conversion C# XML vers Excel
Pour convertir XML en Excel, nous utiliserons l’API Aspose.Cells for .NET. Il s’agit d’une API puissante et riche en fonctionnalités qui permet d’exécuter des fonctionnalités d’automatisation Excel par programmation sans avoir besoin d’une application Microsoft Excel.
La classe Workbook de l’API représente une feuille de calcul Excel. Il permet l’ouverture et la sauvegarde de fichiers Excel natifs. Il fournit également des méthodes pour copier des données à partir d’autres classeurs, combiner deux classeurs et protéger la feuille de calcul Excel. Cette classe permet d’importer des fichiers de données XML dans le classeur à l’aide de la méthode ImportXml(). La méthode save() de cette classe permet d’enregistrer les classeurs dans les formats spécifiés.
Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.
PM> Install-Package Aspose.Cells
Convertir XML en Excel en C#
Nous pouvons facilement convertir un fichier de données XML en classeur Excel en suivant les étapes ci-dessous :
- Créez une instance de la classe Workbook.
- Appelez la méthode ImportXml() pour importer le fichier XML.
- Enregistrez le classeur en tant que fichier XLSX à l’aide de la méthode Save(). Il prend le chemin du fichier de sortie comme argument.
L’exemple de code ci-dessous montre comment convertir XML en Excel à l’aide de C#.
// Cet exemple de code montre comment importer un fichier de données XML dans Excel.
// Chemin du dossier de données
var dataDir = @"C:\Files\";
// Créer une instance de la classe Workbook
Workbook workbook = new Workbook();
// Importer XML dans le classeur
// Il prend le chemin du fichier XML, le nom de la feuille de destination, la ligne et la colonne de destination comme arguments.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);
// Enregistrez le classeur au format XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Exporter des colonnes spécifiques de XML vers Excel en C#
Nous devons créer un fichier XSLT avec une mise en page HTML pour afficher nos données dans un tableau. Un fichier XLS est une feuille de style qui peut être utilisée pour transformer des documents XML en d’autres types de documents et pour formater la sortie. Nous inclurons uniquement les colonnes requises dans le fichier XSLT pour la conversion en Excel. Le fichier XLS qui nous aidera à faire cela pourrait ressembler à ceci :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
<th style="text-align:left">Price</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="artist"/>
</td>
<td>
<xsl:value-of select="price"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Nous pouvons obtenir des colonnes spécifiques d’un fichier de données XML dans un classeur Excel en suivant les étapes ci-dessous :
- Tout d’abord, lisez le fichier XML à l’aide de la méthode File.ReadAllText().
- Ensuite, lisez le fichier XSLT à l’aide de la méthode File.ReadAllText().
- Ensuite, transformez le contenu XML à l’aide de l’instance de classe XslCompiledTransform.
- Après cela, spécifiez divers paramètres de feuille de calcul tels que AutoFitRows et AutoFitColumns.
- Enregistrez le classeur en tant que fichier XLSX à l’aide de la méthode Save(). Il prend le chemin du fichier de sortie comme argument.
L’exemple de code ci-dessous montre comment convertir des colonnes spécifiques de XML en Excel à l’aide de C#.
// Cet exemple de code montre comment importer des colonnes spécifiques à partir d'un fichier de données XML dans Excel.
// Chemin du dossier de données
var dataDir = @"C:\Files\";
// Lire le contenu du fichier XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");
// Lire le contenu du fichier XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");
// Transformez XML et obtenez du contenu dans MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);
// Créer un classeur
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();
// Enregistrez le classeur au format XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Obtenez une licence gratuite
Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.
Conclusion
Dans cet article, nous avons appris à importer des données d’un fichier XML vers Excel en C#. Nous avons également vu comment extraire des données de colonne spécifiques d’un fichier XML et les convertir en Excel par programme. En outre, vous pouvez en savoir plus sur l’API Aspose.Cells for .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.