{"id":288,"date":"2024-03-17T14:45:39","date_gmt":"2024-03-17T13:45:39","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=288"},"modified":"2024-03-24T14:47:03","modified_gmt":"2024-03-24T13:47:03","slug":"die-konvertierung-von-excel-dokumenten-in-xml-mit-java","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=288","title":{"rendered":"Die Konvertierung von Excel-Dokumenten in XML mit Java"},"content":{"rendered":"\n<p>Die Konvertierung von Excel-Dokumenten in XML ist ein h\u00e4ufiges Problem, dem Entwickler in verschiedenen Anwendungsbereichen gegen\u00fcberstehen. XML (eXtensible Markup Language) ist eine weit verbreitete Auszeichnungssprache zur Darstellung hierarchischer Daten, w\u00e4hrend Excel eine tabellenbasierte Anwendung ist, die h\u00e4ufig zur Datenspeicherung und -verarbeitung verwendet wird. Java ist eine \u00e4u\u00dferst flexible Programmiersprache, die oft f\u00fcr solche Aufgaben eingesetzt wird, da sie \u00fcber eine breite Palette von Bibliotheken und Frameworks verf\u00fcgt, die die Verarbeitung von Dateien erleichtern. In diesem Artikel werden wir uns genauer damit befassen, wie man Excel-Dokumente mithilfe von Java in das XML-Format konvertieren kann.<\/p>\n\n\n\n<p><strong>Grundlagen der Konvertierung von Excel zu XML<\/strong><\/p>\n\n\n\n<p>Bevor wir uns mit der Implementierung befassen, ist es wichtig, die Grundlagen der Excel- und XML-Dateiformate zu verstehen. Excel speichert Daten in Zellen, die in Tabellen organisiert sind. Diese Tabellen k\u00f6nnen mehrere Arbeitsbl\u00e4tter enthalten, und jede Zelle kann verschiedene Datentypen enthalten, einschlie\u00dflich Text, Zahlen, Formeln usw. Auf der anderen Seite ist XML eine hierarchische Markupsprache, die es erm\u00f6glicht, strukturierte Daten zu speichern. XML-Dateien bestehen aus Elementen, Attributen und Textknoten, die in einem Baumstrukturformat organisiert sind.<\/p>\n\n\n\n<p><strong>Verwendung von Apache POI f\u00fcr die Verarbeitung von Excel-Dokumenten<\/strong><\/p>\n\n\n\n<p>Apache POI ist eine Java-Bibliothek, die es erm\u00f6glicht, Microsoft-Dokumente zu lesen, zu erstellen und zu bearbeiten. F\u00fcr die Konvertierung von Excel zu XML verwenden wir die Apache POI-Bibliothek, um Excel-Dateien zu analysieren und die enthaltenen Daten abzurufen. Apache POI unterst\u00fctzt die Formate von Microsoft Office, einschlie\u00dflich .xls und .xlsx Dateien.<\/p>\n\n\n\n<p><strong>Implementierung der Konvertierung<\/strong><\/p>\n\n\n\n<p>Um Excel-Dokumente in XML zu konvertieren, ben\u00f6tigen wir zun\u00e4chst die Apache POI-Bibliothek. Diese kann in ein Java-Projekt eingebunden werden, entweder manuell durch Hinzuf\u00fcgen der JAR-Dateien oder \u00fcber ein Build-Tool wie Maven oder Gradle.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.io.FileInputStream;\n<span class=\"hljs-keyword\">import<\/span> java.io.FileOutputStream;\n<span class=\"hljs-keyword\">import<\/span> org.apache.poi.ss.usermodel.*;\n<span class=\"hljs-keyword\">import<\/span> org.apache.poi.xssf.usermodel.XSSFWorkbook;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Document;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Element;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilder;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilderFactory;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">ExcelToXMLConverter<\/span> <\/span>{\n\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        <span class=\"hljs-keyword\">try<\/span> {\n            FileInputStream excelFile = <span class=\"hljs-keyword\">new<\/span> FileInputStream(<span class=\"hljs-string\">\"input.xlsx\"<\/span>);\n            Workbook workbook = <span class=\"hljs-keyword\">new<\/span> XSSFWorkbook(excelFile);\n            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();\n            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();\n            Document doc = dBuilder.newDocument();\n            Element rootElement = doc.createElement(<span class=\"hljs-string\">\"data\"<\/span>);\n            doc.appendChild(rootElement);\n            <span class=\"hljs-keyword\">for<\/span> (Sheet sheet : workbook) {\n                Element sheetElement = doc.createElement(<span class=\"hljs-string\">\"sheet\"<\/span>);\n                rootElement.appendChild(sheetElement);\n                sheetElement.setAttribute(<span class=\"hljs-string\">\"name\"<\/span>, sheet.getSheetName());\n                <span class=\"hljs-keyword\">for<\/span> (Row row : sheet) {\n                    Element rowElement = doc.createElement(<span class=\"hljs-string\">\"row\"<\/span>);\n                    sheetElement.appendChild(rowElement);\n                    <span class=\"hljs-keyword\">for<\/span> (Cell cell : row) {\n                        Element cellElement = doc.createElement(<span class=\"hljs-string\">\"cell\"<\/span>);\n                        rowElement.appendChild(cellElement);\n                        cellElement.appendChild(doc.createTextNode(cell.toString()));\n                    }\n                }\n            }\n            FileOutputStream xmlFile = <span class=\"hljs-keyword\">new<\/span> FileOutputStream(<span class=\"hljs-string\">\"output.xml\"<\/span>);\n            TransformerFactory transformerFactory = TransformerFactory.newInstance();\n            Transformer transformer = transformerFactory.newTransformer();\n            transformer.setOutputProperty(OutputKeys.INDENT, <span class=\"hljs-string\">\"yes\"<\/span>);\n            transformer.transform(<span class=\"hljs-keyword\">new<\/span> DOMSource(doc), <span class=\"hljs-keyword\">new<\/span> StreamResult(xmlFile));\n            System.out.println(<span class=\"hljs-string\">\"XML file generated successfully!\"<\/span>);\n            workbook.close();\n            excelFile.close();\n            xmlFile.close();\n        } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel \u00f6ffnen wir ein Excel-Dokument mit dem Namen &#8222;input.xlsx&#8220;. Wir erstellen ein neues XML-Dokument und durchlaufen jedes Arbeitsblatt und jede Zeile des Excel-Dokuments. F\u00fcr jede Zelle erstellen wir ein entsprechendes XML-Element und f\u00fcgen es zum XML-Dokument hinzu. Schlie\u00dflich schreiben wir das XML-Dokument in eine Datei mit dem Namen &#8222;output.xml&#8220;.<\/p>\n\n\n\n<p><strong>Fazit<\/strong><\/p>\n\n\n\n<p>Die Konvertierung von Excel-Dokumenten in XML mithilfe von Java ist dank der Apache POI-Bibliothek relativ einfach. Durch das Verstehen der Grundlagen der Excel- und XML-Formate sowie der Verwendung von geeigneten Bibliotheken k\u00f6nnen Entwickler effizient L\u00f6sungen f\u00fcr diese Aufgabe implementieren. Die vorgestellte Implementierung erm\u00f6glicht es, Excel-Daten in einem strukturierten XML-Format zu speichern, was in verschiedenen Anwendungsf\u00e4llen n\u00fctzlich sein kann, wie zum Beispiel beim Austausch von Daten zwischen unterschiedlichen Systemen oder zur weiteren Verarbeitung von Daten in XML-f\u00e4higen Anwendungen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Konvertierung von Excel-Dokumenten in XML ist ein h\u00e4ufiges Problem, dem Entwickler in verschiedenen Anwendungsbereichen gegen\u00fcberstehen. XML (eXtensible Markup Language) ist eine weit verbreitete Auszeichnungssprache zur Darstellung hierarchischer Daten, w\u00e4hrend Excel eine tabellenbasierte Anwendung ist, die h\u00e4ufig zur Datenspeicherung und -verarbeitung verwendet wird. Java ist eine \u00e4u\u00dferst flexible Programmiersprache, die oft f\u00fcr solche Aufgaben eingesetzt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-288","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=288"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/288\/revisions"}],"predecessor-version":[{"id":289,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/288\/revisions\/289"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}