XML Datei erzeugen

Gast #6171253
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?
#6171321
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.
Gast #6171365
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.
Angehängte Dateien:
Gast #6172825
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
#6174148
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)
#6174199
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.
#6174607
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? :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren