XML Datei erzeugen

Gast #6171253
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
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.
OP #6171345
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)
Gast #6171365
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
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
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
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.
#6174217
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 >_<
#6174607
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? :-)
Gast #6190994
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.