Konvertierung zwischen Excel-Arbeitsblättern und XML mit Python
XML (Extensible Markup Language) ist eine erweiterbare Auszeichnungssprache und auch ein Dateiformat. XML ermöglicht benutzerdefinierte Tags, ist erweiterbar, einfach lesbar und schreibbar und leicht zu übertragen. Es ist das am häufigsten verwendete Werkzeug für den Datenaustausch zwischen Anwendungen. Das XML-Format ist einfach zu übertragen und Entwickler können leicht mit Tabellen arbeiten. Für Endbenutzer muss es jedoch in Formaten wie xls oder xlsx angezeigt werden. In diesem Artikel wird erklärt, wie Excel-Arbeitsmappen und XML-Dateien ineinander konvertiert werden können.
Die in diesem Artikel vorgestellten Methoden erfordern Spire.XLS for Python, das von der offiziellen Website heruntergeladen oder mit pip installiert werden kann (Dispatch 1.7.4 muss ebenfalls installiert werden):
pip install Spire.XLS-for-Python
pip install plum-dispatch==1.7.4
Excel-Arbeitsblätter in XML konvertieren
Die Methoden SaveAsXML(fileName: str) oder SaveToFile(fileName: str, FileFormat.XML) können verwendet werden, um Excel-Arbeitsmappen in XML-Dateien zu konvertieren. Bei der Konvertierung in XML werden nur Stilinformationen wie Schriftart und -größe beibehalten. Im Folgenden die detaillierten Schritte:
Erstellen Sie ein Workbook-Objekt
Laden Sie die Excel-Tabelle mit Workbook.LoadFromFile()
Konvertieren und speichern Sie die Tabelle als XML-Datei mit Workbook.SaveAsXml() oder Workbook.SaveToFile()
Python
from spire.xls import *
from spire.common import *
# Erstellen Sie ein Objekt der Workbook-Klasse
workbook = Workbook()
# Laden Sie die Excel-Arbeitsmappe
workbook.LoadFromFile("Beispiele.xlsx")
# Konvertieren und speichern Sie in einer XML-Datei
workbook.SaveAsXml("output/Arbeitsmappe.xml")
# workbook.SaveToFile("output/Arbeitsmappe.xml", FileFormat.XML)
Arbeitsbuch
Ergebnisse der Umrechnung
XML-Dateien im Excel-Standardformat in Arbeitsblätter konvertieren
XML-Dateien, die dem Excel-Standard entsprechen, können direkt in eine Arbeitsmappe konvertiert werden:
Erstellen Sie ein Workbook-Objekt
Laden Sie die XML-Datei mit Workbook.LoadFromXml()
Konvertieren und speichern Sie die XML-Datei als Excel-Arbeitsmappe mit Workbook.SaveToFile()
Python
from spire.xls import *
from spire.common import *
# Erstellen Sie ein Objekt der Workbook-Klasse
workbook = Workbook()
# Laden Sie die XML-Datei
workbook.LoadFromXml("output/Arbeitsmappe.xml")
# Konvertieren Sie die XML-Datei in eine Excel-Arbeitsmappe und speichern Sie sie
workbook.SaveToFile("output/Konvertierung_von_XML_zu_Excel.xlsx", FileFormat.Version2016)
Ergebnisse der Umrechnung
XML-Daten einlesen und in eine Excel-Arbeitsmappe speichern
Für nicht standardkonforme XML-Dateien können die Daten eingelesen und in eine Excel-Datei geschrieben werden:
Nachfolgend finden Sie eine Beispiel-XML-Datei, die zum Lesen der Daten verwendet wird:
XML
<students>
<student>
<Vorname>John</Vorname>
<Alter>25</Alter>
<Geschlecht>Männlich</Geschlecht>
<Adresse>123 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7890</Telefonnummer>
</student>
<student>
<Vorname>Jane</Vorname>
<Alter>30</Alter>
<Geschlecht>Weiblich</Geschlecht>
<Adresse>456 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7891</Telefonnummer>
</student>
<student>
<Vorname>Jack</Vorname>
<Alter>35</Alter>
<Geschlecht>Männlich</Geschlecht>
<Adresse>789 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7892</Telefonnummer>
</student>
<student>
<Vorname>Sarah</Vorname>
<Alter>28</Alter>
<Geschlecht>Weiblich</Geschlecht>
<Adresse>321 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7893</Telefonnummer>
</student>
<student>
<Vorname>David</Vorname>
<Alter>40</Alter>
<Geschlecht>Männlich</Geschlecht>
<Adresse>654 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7894</Telefonnummer>
</student>
<student>
<Vorname>Emily</Vorname>
<Alter>22</Alter>
<Geschlecht>Weiblich</Geschlecht>
<Adresse>987 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7895</Telefonnummer>
</student>
<student>
<Vorname>Michael</Vorname>
<Alter>33</Alter>
<Geschlecht>Männlich</Geschlecht>
<Adresse>246 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7896</Telefonnummer>
</student>
<student>
<Vorname>Rachel</Vorname>
<Alter>27</Alter>
<Geschlecht>Weiblich</Geschlecht>
<Adresse>135 Main Street, irgendwo in Amerika</Adresse>
<Telefonnummer>(123) 456-7897</Telefonnummer>
</student>
</students>
Das genaue Verfahren ist wie folgt:
Erstellen Sie ein Workbook-Objekt
Laden Sie die XML-Daten
Bestimmen Sie Spaltenzahl und Header aus dem ersten student-Knoten
Legen Sie den Arbeitsblattnamen mit Worksheet.Name fest
Schreiben Sie die Daten mit Worksheet.SetValue()
Speichern Sie die Arbeitsmappe als neue Excel-Datei mit Workbook.SaveToFile()
Python
from spire.xls import *
from spire.common import *
import xml.etree.ElementTree as ET
# Erstellen Sie ein Objekt der Workbook-Klasse
workbook = Workbook()
# XML-Daten laden
xml_tree = ET.parse("Beispiel.xml")
xml_root = xml_tree.getroot()
# Holen Sie sich den ersten student-Knoten, um die Anzahl der Spalten und den Header festzulegen
first_student = xml_root.find("student")
header = list(first_student.iter())[1:] # Erster Knoten wird übersprungen
# Arbeitsblatt hinzufügen und den Namen festlegen
worksheet_name = xml_root.tag
worksheet = workbook.Worksheets[0]
worksheet.Name = worksheet_name
# Header schreiben
for col_index, header_node in enumerate(header, start=1):
header_text = header_node.tag
worksheet.SetValue(1, col_index, header_text)
# Schülerdaten schreiben
row_index = 2
for student in xml_root.iter("student"):
for col_index, data_node in enumerate(list(student.iter())[1:], start=1): # Erster Knoten wird übersprungen
value = data_node.text
worksheet.SetValue(row_index, col_index, value)
row_index += 1
# Arbeitsmappe als neue Excel-Datei speichern
workbook.SaveToFile("output/neue_arbeitsmappe.xlsx")
Ergebnisse der Umrechnung
Dies ist eine Einführung in die Interkonvertierung zwischen XML- und Excel-Tabellen; Spire.XLS für Python hat viele weitere Funktionen, über die Sie im Spire.XLS für Python-Tutorial mehr erfahren können. Wenn Sie Probleme haben, beteiligen Sie sich bitte an der Diskussion in den Spire.XLS-Foren.
Subscribe to my newsletter
Read articles from Alex Taylor directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Alex Taylor
Alex Taylor
Share office file processing skills in .NET, Java, and C++.