Forum: PC-Programmierung XML Datei erzeugen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Amin B. (ben92)


Bewertung
0 lesenswert
nicht lesenswert
wie kann man ein XML Datei aus eine Excel Tabelle erzeugen ?

von Ex Emil (Gast)


Bewertung
0 lesenswert
nicht lesenswert
vor jeder Zelle ein öffnendes <Tag>
Und nach jeder Zelle ein schliessendes </Tag>

Ist es nicht so dass bei zeitgemässen Offices beireits als XML 
gespeichert wird, nämlich XLSX?
Steht im Handbuch nichts dazu?

von Amin B. (ben92)


Bewertung
0 lesenswert
nicht lesenswert
leider Steht im Handbuch nichts dazu , also die xml Datei soll 
automatisch mit der Hilfe von VB-Excel erstellt werden

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Dein Ansatz, XML-Dateien mit Excel für Übersetzungszwecke zu bearbeiten, 
ist vom Grundprinzip her schlecht. Excel ist nicht das Werkzeug der 
Wahl dafür.

Wenn du es unbedingt machen musst, dann schreib dir ein Script, 
welches zwischen den beiden Formaten (XML und XLS/XLSX) konvertiert. Es 
gibt passende Module für Python, Perl und diverse andere Sprachen. Du 
kannst auch Excel selbst über die Win32-COM-API fernsteuern. 
Beispielcode findest du im Netz.

Wenn du auf Schmerzen stehst oder keine Scriptsprachen magst, dann 
kannst du diese Funktionen mit VBA in Excel selbst ausprogrammieren. Das 
heißt, du implementierst in dein Excel-Sheet zwei Buttons für 
"vorhandene XML-Datei einlesen" und "neue XML-Datei schreiben".

Und nein, das wird keine schöne Lösung. Egal, wie du es aufziehst.

von Amin B. (ben92)


Bewertung
0 lesenswert
nicht lesenswert
ich hab in VBA ein Button für neu xml Datei implementiert , ich bekomme 
aber leider ein normalen Text datei , der die Inhalt von der excel 
Tabelle enthält also ich bekomme kein richtige xml datei ( kein xml 
Struktur)

von Unzip (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Amin B. schrieb:
> wie kann man ein XML Datei aus eine Excel Tabelle erzeugen

Speichern als XLSX.

Umbenennen von *.xlsx in *.zip
Warnung wegen Änderung der Extension ignorieren
Doppelklicken.
XML-Dateien bewundern und rauskopieren. (vermutlich interessiert dich 
xl->worksheets->sheet1.xml)
Fertig.


etwas umständlich: Strings sind da drin nur als index in die 
"sharedStrings"-Datei gespeichert. Die brauchst du also auch.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Amin B. schrieb:
> ich hab in VBA ein Button für neu xml Datei implementiert ,
> ich bekomme aber leider ein normalen Text datei

Du musst auch den passenden Code schreiben, der aus den in der Tabelle 
vorliegenden Daten eine XML-Datei baut.

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Amin B. schrieb:
> ich hab in VBA ein Button für neu xml Datei implementiert , ich
> bekomme
> aber leider ein normalen Text datei , der die Inhalt von der excel
> Tabelle enthält also ich bekomme kein richtige xml datei ( kein xml
> Struktur)

XLM ist auch nur eine normale Textdatei mit besonderen Elementen die 
musst du eben in deine Stringausgabe einbauen: 
https://mediencommunity.de/book/export/html/20338

von Vlad T. (vlad_tepesch)


Bewertung
0 lesenswert
nicht lesenswert
Amin B. schrieb:
> wie kann man ein XML Datei aus eine Excel Tabelle erzeugen ?

was meinst du denn mit "eine XML-Datei"

was soll sie denn enthalten, bzw, wer soll sie denn weiterverarbeiten?

XML ist ja nicht gleich XML. XML beschreibt ja erstmal nur, wie daten 
strukturiert abgelegt und ausgezeichnet werden können daher auch der 
Name: eXtendeable Markup Language.

Es gibt tausende Datenformate, die auf XML basieren.

Das standard-Excel-Format ist bereits ein XML-Format, und wie du da 
rankommst wurde ja bereits beschrieben
-->

Unzip schrieb:
> [wie man da ran kommt]


ich bezweifel allerdings, dass es wirklich das ist was du willst.

Das einfachste, was ich mir vorstellen könnte, wäre etwas wie
Pro zeile ein Knoten mit den spalten als Unterknoten mit den 
spaltennamen als knoten-name (andere möglichkeit wäre immer derselbe 
knotenname und der spaltenname als attribut):
<Kunden>
  <datensatz id="1">
    <Kundenname>Max Mustermann</Kundenname>
    <Adresse>Blablaweg 1, 32342 Hintertupflingen</Adresse>
  </datensatz>
  <datensatz id="n">
  ...
  </datensatz>
</Kunden>


sowas würde ich allerdings auch nicht direkt aus per excel-Macro 
ausgeben wollen.

Und XML händisch zusammenzubauen ist Murks.

Excel unterstützt xml-export. dazu muss allerdings erst eine Zurordnung 
erstellt werden - hab das aber noch nie gemacht:

https://support.office.com/de-de/article/zuordnen-von-xml-elementen-zu-zellen-in-einer-xml-zuordnung-ddb23edf-f5c5-4fbf-b736-b3bf977a0c53#__create_an_xml
Dann kann xml exportiert werden.

Alternativ, ginge per scriptsprache - finde ich aber eine Krücke, zumal 
die Python-lib meines Wissens nur das alte Excel-Format kann (vielleicht 
hat sich das aber auch geändert)

: Bearbeitet durch User
von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Vlad T. schrieb:
> Alternativ, ginge per scriptsprache - finde ich aber eine Krücke,
> zumal die Python-lib meines Wissens nur das alte Excel-Format kann
> (vielleicht hat sich das aber auch geändert)

Es gibt mehr als eine. :-)

Und bei uns auf Arbeit läuft ein Legacy-System mit Ruby, was Excel 
fernsteuert und dann die Zwischenablage parst... es gibt da sehr 
unterschiedliche Abstufungen.

von Vlad T. (vlad_tepesch)


Bewertung
0 lesenswert
nicht lesenswert
S. R. schrieb:
> Und bei uns auf Arbeit läuft ein Legacy-System mit Ruby, was Excel
> fernsteuert und dann die Zwischenablage parst... es gibt da sehr
> unterschiedliche Abstufungen.

das ist ja richtig hässlich.
Dann darf in der Zeit auch keiner am Rechner sitzen, weil das Excel über 
maus und tastatur-input ferngesteuert wird, was >_<

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Vlad T. schrieb:
> Dann darf in der Zeit auch keiner am Rechner sitzen, weil das Excel über
> maus und tastatur-input ferngesteuert wird, was >_<

Nein. Excel bietet eine Win32/OLE-API an. Das Fenster selbst wird nie 
geöffnet. (Einer meiner ersten Bugfixes war, den Kram in einer VM 
lauffähig zu machen. Da war Ruby nämlich schneller als Excel und hat die 
Zwischenablage geparst, bevor die Daten drinstanden...)

Ich sag jetzt nicht, dass das System C++-Code und passende Headerdateien 
für Linux auswirft, okay? :-)

: Bearbeitet durch User
von Ruppie (Gast)


Bewertung
0 lesenswert
nicht lesenswert
EXCEL --> XML


Hallo,
ein einfaches Konzept wäe: mittels EXCEL Lizenz, warum ?

Mittels EXCEL Objectmodell eine EXcel Tabelle laden und als XML 
speichern, fertig.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.