# XML mit Excel öffnen, zahlen anzeigen "00001"



## RE-DIK (23. März 2010)

Hallo zusammen,

habe ein kleines Problem. Aber ich finde keinen Ansatz dies zu lösen.

Und zwar möchte ich eine XML öffnen mit Excel, diese XML hat Element die Zahlen beinhalten, diese Zahlen sehen so aus "0001" oder "0002331". 

Meine Frage ist wie bekomme ich es hin das Excel die Nullen anzeigt ohne manuel die Zellen zu formatieren?

Eine Lösung hätte aber die ist nicht so toll. Ich habe ein anderes Zeichen in der XML vor den Nullen gesetzt dies sieht aber nicht gut aus.

Hoffe Ihr könnt mir helfen.


----------



## ComFreek (23. März 2010)

Du musst immer ganz vorne eines Wertes ein Hochkomma machen ('). Excel formatiert sie dann nicht automatisch.

Bei mir zeigt Excel 2007 eine Warnung an (ein grünes Dreieck), das macht aber nichts aus. Ich kann immer noch addieren und subtrahien....


----------



## RE-DIK (23. März 2010)

Danke für deine schnelle Antwort.

Meinst du in meiner XML sollsten die Elemente so aussehen?

....
<zahl>'000003224</zahl>
....

Habs ausprobiert mit Excel 2007 bei mir werden die Zahlen dann mit den Nullen angezeigt aber das Hochkomma auch.

Rechnen ist nicht wichtig ich müsste die Zahlen nur mit den Nullen ausgeben und es wäre schön wenn da kein anders Zeichen wäre oder wenns anders nciht geht das dieses Zeichen so unsichtbar wie möglich ist.


----------



## tombe (23. März 2010)

Kannst du beim Einlesen/Importieren der Datei nicht angeben das er diese Spalte als Text fornatieren soll. Die führenden Nullen werden ja nur entfernt wenn Excel die Daten automatisch als Zahl formatiert.

Weiß ja nicht wie deine Datei aufgebaut ist, aber zur Not öffne die Datei nicht über "Datei -> Öffnen" sodern gehe auf "Daten -> Externe Daten -> Textdatei importieren". Da kannst du das Spaltenformat angeben.


----------



## RE-DIK (23. März 2010)

also die XML sieht so aus:

<?xml version='1.0' encoding='UTF-8'?>
<abfrage>
<Produkt_id>0000001</Produkt_id>
<Gruppe>0000008</Gruppe>
<Attri_bute>000000154</Attri_bute>
<Zielprodukt>00000089733963</Zielprodukt>
</abfrage>

nix besonderes.

ich öffne die XML mit rechtermaustaste (öffnen mit .. Excel) dann als XML-Tabelle.

wenn ich die XML ändere und ein Zeichen vor der Zahl setze

<?xml version='1.0' encoding='UTF-8'?>
<abfrage>
<Produkt_id>'0000001</Produkt_id>
<Gruppe>'0000008</Gruppe>
<Attri_bute>'000000154</Attri_bute>
<Zielprodukt>'00000089733963</Zielprodukt>
</abfrage>

 zeigt er alles an aber dieses Zeichen dann halt auch. 

Weißt du ob man mit bestimmt zeichen ($) wie bei VBA den in halt als String zu deklarieren kann?


----------



## tombe (23. März 2010)

Ich glaube nicht das der Trick mit dem Dollarzeichen funktioniert, kann es aber nicht mit Bestimmtheit sagen.

Ein Leerzeichen vor und eventuell nach den Zahlen würde zumindest optisch nicht so auffallen wie das einfache Anführungszeichen, aber ich vermute mal das Excel das beim Einlesen entfernt und trotzdem als Zahl behandelt.

Dann wird wohl doch die Formatierung innerhalb von Excel die einfachste Lösung sein.


----------



## RE-DIK (23. März 2010)

Gut trozdem Danke für eure Hilfe.


----------



## tombe (23. März 2010)

Weiß nicht ob es dir was hilft oder ob es eine Option für dich ist.

Bei OpenOffice kannst du zwar keine XML Dateien direkt öffnen aber beim Import kannst du eine Feldtrennzeichen angeben. Geht zwar im Prinzip bei Excel auch, doch hier kannst du ein mehrstelliges Trennzeichen angeben. Wenn du hier "<*>" angibst nimmt er alles was in spitzen Klammern steht (der Stern dient als Joker) als eines Feld und du kannst für jede Spalte den Datentyp angeben.

Das Ergebnis siehst du hier:


----------



## ComFreek (23. März 2010)

@Re-Dik: Bei mir ist auch das Hochkomma. Aber ich habe einen Fehler vom Programm entdeckt. Wenn man in die Zelle doppelklickt und dann wieder eine andere Zelle fokusiert, dann verschwindet das Hochkomma.

@tombe: Also Excel fragt nicht nach einem Trennzeichen oder so. Aber man kann alle Zellen auswählen->Formatieren->Text


----------



## RE-DIK (24. März 2010)

Danke Leute aber leider geht es nicht so bei mir.

Das Beispiel was ich als erste erwähnt habe war etwas Ausgedachtes gewesen. Bei mir müsste es alles automatisch passieren und nicht manuell.

Aber falls ihr mir trotzdem helfen könnt beschreibe ich mal meine Vorhaben.

Ich habe 5 XML Datei die verdammt groß sind um nur bestimmt Informationen zu filtern nutze ich XSLT dies funktioniert alles. So diese Transformation macht bei mir Excel, dafür habe ich eine Batch gemacht und die öffnet eine andere XML Datei die mit meinen XSL Dateien verbunden ist.

Wenn eine XML geöffnet wir kann man bestimmen welche XSL angewendet werden soll danach führt Excel die Transformation aus und das Ergebnis als XML-Tabelle öffnen. Dann habe ich eine Excel Arbeitsmappe die 2000 Zeilen und Spalten bis AR hat. 

So und um diesen ganzen Vorgang für Nutzer die nicht wissen wie und was sie machen müssen, habe ich eine Arbeitsmappe in Excel erstell als Oberfläche und mit VBA die Funktionen halt.

Wenn der Nutzer dann auf den Button klickt soll er einfach eine neue Arbeitsmappe geöffnet bekommen und die Liste sehen mit der er etwas anfangen kann.

Noch eine Möglichkeit die ich mir vorstellen könnte aber ich wüsste es nicht ob dies funktioniert. Mit eine bestehenden Arbeitsmappe auf eine neu geöffneten Mappe, die nicht gespeichert ist, zugreifen und Zellen bearbeiten.

Wäre jetzt meine letzte Hoffnung da der Nutzer nicht vor jeder Zahl ein Zeichen haben möchte.


----------

