Forum: PC-Programmierung XML Datei erzeugen


von Amin B. (ben92)


Lesenswert?

wie kann man ein XML Datei aus eine Excel Tabelle erzeugen ?

von Ex Emil (Gast)


Lesenswert?

1
vor jeder Zelle ein öffnendes <Tag>
2
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)


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)


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)


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:

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)


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)


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)


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):
1
<Kunden>
2
  <datensatz id="1">
3
    <Kundenname>Max Mustermann</Kundenname>
4
    <Adresse>Blablaweg 1, 32342 Hintertupflingen</Adresse>
5
  </datensatz>
6
  <datensatz id="n">
7
  ...
8
  </datensatz>
9
</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)


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)


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)


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)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.