XML (Extensible Markup Language) ähnelt HTML, verwendet jedoch andere Tags zum Definieren von Objekten. Es dient zum Speichern und Transportieren von Daten, ohne auf Software- oder Hardware-Tools angewiesen zu sein. In bestimmten Fällen müssen wir möglicherweise Daten zur weiteren Verarbeitung von XML nach Excel (XLSX oder XLS) exportieren. Excel-Dateien werden häufig zum Speichern und Organisieren von Daten verwendet. In diesem Artikel erfahren Sie, wie Sie mit C# XML in Excel konvertieren.
Folgende Themen sollen in diesem Artikel behandelt werden:
- C#-XML-zu-Excel-Konverter-API
- XML in Excel konvertieren
- Spezielle Spalten von XML nach Excel exportieren
C#-XML-zu-Excel-Konverter-API
Zum Konvertieren von XML in Excel verwenden wir die API Aspose.Cells for .NET. Es ist eine funktionsreiche und leistungsstarke API, die es ermöglicht, Excel-Automatisierungsfunktionen programmgesteuert auszuführen, ohne dass eine Microsoft Excel-Anwendung erforderlich ist.
Die Klasse Workbook der API repräsentiert eine Excel-Tabelle. Es ermöglicht das Öffnen und Speichern von nativen Excel-Dateien. Es bietet auch Methoden zum Kopieren von Daten aus anderen Arbeitsmappen, Kombinieren von zwei Arbeitsmappen und Schützen der Excel-Tabelle. Diese Klasse ermöglicht das Importieren von XML-Datendateien in die Arbeitsmappe mithilfe der Methode ImportXml(). Die Methode save() dieser Klasse ermöglicht das Speichern der Arbeitsmappen in den angegebenen Formaten.
Bitte entweder die DLL der API herunterladen oder sie mit NuGet installieren.
PM> Install-Package Aspose.Cells
XML in Excel in C# konvertieren
Wir können eine XML-Datendatei einfach in eine Excel-Arbeitsmappe konvertieren, indem wir die folgenden Schritte ausführen:
- Erstellen Sie eine Instanz der Workbook-Klasse.
- Rufen Sie die Methode ImportXml() auf, um eine XML-Datei zu importieren.
- Speichern Sie die Arbeitsmappe mit der Save()-Methode als XLSX-Datei. Es nimmt den Pfad der Ausgabedatei als Argument.
Das unten angegebene Codebeispiel zeigt, wie XML mit C# in Excel konvertiert wird.
// Dieses Codebeispiel zeigt, wie Sie eine XML-Datendatei in Excel importieren.
// Datenordnerpfad
var dataDir = @"C:\Files\";
// Erstellen Sie eine Instanz der Workbook-Klasse
Workbook workbook = new Workbook();
// XML in Arbeitsmappe importieren
// Als Argumente werden der XML-Dateipfad, der Name des Zielblatts, die Zielzeile und -spalte verwendet.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);
// Speichern Sie die Arbeitsmappe als XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Exportieren Sie bestimmte Spalten von XML nach Excel in C#
Wir müssen eine XSLT-Datei mit einem HTML-Layout erstellen, um unsere Daten in einer Tabelle darzustellen. Eine XSL-Datei ist ein Stylesheet, das verwendet werden kann, um XML-Dokumente in andere Dokumenttypen umzuwandeln und die Ausgabe zu formatieren. Wir werden nur die erforderlichen Spalten in die XSLT-Datei für die Konvertierung in Excel aufnehmen. Die XSL-Datei, die uns dabei hilft, könnte etwa so aussehen:
<?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>
Wir können bestimmte Spalten aus einer XML-Datendatei in eine Excel-Arbeitsmappe übertragen, indem wir die folgenden Schritte ausführen:
- Lesen Sie zuerst die XML-Datei mit der Methode File.ReadAllText().
- Lesen Sie als Nächstes die XSLT-Datei mit der Methode File.ReadAllText().
- Transformieren Sie dann den XML-Inhalt mithilfe der XslCompiledTransform-Klasseninstanz.
- Geben Sie danach verschiedene Arbeitsblatteinstellungen wie AutoFitRows und AutoFitColumns an.
- Speichern Sie die Arbeitsmappe mit der Save()-Methode als XLSX-Datei. Es nimmt den Pfad der Ausgabedatei als Argument.
Das unten angegebene Codebeispiel zeigt, wie bestimmte Spalten mithilfe von C# von XML in Excel konvertiert werden.
// Dieses Codebeispiel zeigt, wie bestimmte Spalten aus einer XML-Datendatei in Excel importiert werden.
// Datenordnerpfad
var dataDir = @"C:\Files\";
// Lesen Sie den Inhalt der XML-Datei
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");
// Inhalt der XSLT-Datei lesen
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");
// Transformieren Sie XML und erhalten Sie Inhalte in MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);
// Arbeitsbuch erstellen
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();
// Speichern Sie die Arbeitsmappe als XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Holen Sie sich eine kostenlose Lizenz
Sie können eine kostenlose temporäre Lizenz erwerben, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.
Fazit
In diesem Artikel haben wir gelernt, wie man Daten aus einer XML-Datei in Excel in C# importiert. Wir haben auch gesehen, wie bestimmte Spaltendaten aus einer XML-Datei extrahiert und programmgesteuert in Excel konvertiert werden. Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.Cells für die .NET-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.