Datentransfer Excel-->XML-Dokument

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datentransfer Excel-->XML-Dokument

    Hallo,

    ich habe ein etwas größeres Problem um Daten aus bestimmten Excelzellen in ein XML-Dokument zwischen den Tags abzuspeichern. Mittels VBA bekomme ich die Daten zwar als .txt aber nicht in mein XML Dokument.
    Gibt es da überhaupt eine Möglichkeit? Oder bin ich als Anfänger einfach nur zu "doof", kann natürlich auch sein.
    Für jede Art von Hilfe bin ich dankbar!!!

    Gruss
    Nachtvogel
  • Hi, ich bin OpenOffice Nutzer.
    Aber vielleicht hilft dir dieses Tool:
    AXitd XL2XML

    Dieses Programm ermöglicht das Generieren einer XML Struktur mit Hyperlinksübernahme. Probieren Sie dieses Tool aus und überzeugen Sie sich selbst von der Qualität. Machen Sie sich Ihr eigenes Bild.

    http://www.freeware-archiv.de/shareware/AXitdXL2XML-XML.htm
  • Erst ma Danke

    Danke für die schnelle Antwort,

    aber ich muss weiter ausholen. Ich muss als Projektarbeit alles händisch erstellen (das Coding). Das Projekt ist aufgeteilt in eine zufällige Sitzverteilung die in Excel erstellt wird diese Daten (Name, Vorname, Matrikelnummer) werden mittels VBA momentan als .txt Datei ausgegeben. (Ich habe gehört, ich sollte diese als CSV-Datei tabulatorgtrennt ausgeben). Dann sollen diese CSV-Daten in das XML Coding eingelesen werden und da hänge ich fest.

    Nochmals danke für Deine/Eure Hilfe

    Gruss
    Nachtvogel
  • Kenn mich mit VBA nicht aus, aber xml ist ja wie csv/txt auch nur ein ASCII Format.

    Wenn du also eine CSV mit folgendem Inhalt erstellen kannst.

    Quellcode

    1. ueberschrift1 ueberschrift2 ueberschrift3
    2. AAAAAAAAAAA1 AAAAAAAAAAA2 AAAAAAAAAAA3
    3. BBBBBBBBBBB1 BBBBBBBBBBB2 BBBBBBBBBBB3a


    Dann sollte auch eine Version mit dieser Ausgabe machbar sein

    Quellcode

    1. <xml>
    2. <item>
    3. <ueberschrift1>AAAAAAAAAAA1</ueberschrift>
    4. <ueberschrift2>AAAAAAAAAAA2</ueberschrif2>
    5. <ueberschrift3>AAAAAAAAAAA3</ueberschrif3>
    6. </item>
    7. <item>
    8. <ueberschrift1>BBBBBBBBBBB1</ueberschrift>
    9. <ueberschrift2>BBBBBBBBBBB2</ueberschrif2>
    10. <ueberschrift3>BBBBBBBBBBB3</ueberschrif3>
    11. </item>
    12. </xml>
    Alles anzeigen


    Kannst das VBA Script gerne mal posten, vielleicht können wir dir dennoch helfen
  • Hallo,

    hier mal das gesamte Coding

    VBA:

    Quellcode

    1. Sub Übergabemakro3()
    2. '
    3. ' Tastenkombination: Strg+h für Überführung in Editor
    4. '
    5. ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    6. ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    7. Sheets("Eingabetabelle Studenten").Select
    8. Range("C3").Select
    9. ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    10. Sheets("Übergabe").Select
    11. Range("A1:A135").Select
    12. Application.CutCopyMode = False
    13. Selection.Copy
    14. Workbooks.OpenText Filename:= _
    15. "C:\Persönliche Dateien\Michael\FH\Infoprojekt\Editordaten\Zufällige Sitzverteilung.txt" _
    16. , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    17. :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    18. False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 2) _
    19. , TrailingMinusNumbers:=True
    20. Range("A1").Select
    21. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    22. :=False, Transpose:=False
    23. Cells.Select
    24. With Selection.Interior
    25. .ColorIndex = 15
    26. .Pattern = xlSolid
    27. End With
    28. Selection.Font.ColorIndex = 15
    29. Range("B5").Select
    30. ActiveWorkbook.Save
    31. ActiveWorkbook.Save
    32. ActiveWindow.Close
    33. ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    34. Sheets("Einführung").Select
    35. Range("A1").Select
    36. End Sub
    Alles anzeigen


    Hier XML

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <?xml-stylesheet type="text/xsl" href="transformation.xsl" ?>
    3. <auslosung>
    4. <raum name="257/258">
    5. <person>
    6. <name>Hammele</name>
    7. <vorname>Jürgen</vorname>
    8. <matrikel>41000</matrikel>
    9. </person>
    10. <person>
    11. <name>Frank</name>
    12. <vorname>Christian</vorname>
    13. <matrikel>30000</matrikel>
    14. </person>
    15. <person></person>
    16. <person></person>
    17. <person></person>
    18. </raum>
    19. <raum name="275">
    20. <person>
    21. <name>Bauer</name>
    22. <vorname>Sepp</vorname>
    23. <matrikel>17000</matrikel>
    24. </person>
    25. <person>
    26. <name>Nullinger</name>
    27. <vorname>Oskar</vorname>
    28. <matrikel>10008</matrikel>
    29. </person>
    30. <person></person>
    31. <person></person>
    32. <person></person>
    33. </raum>
    34. </auslosung>
    Alles anzeigen


    Hier XSL:

    Quellcode

    1. <?xml version="1.0"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output method="html" indent="yes" />
    4. <xsl:template match="/auslosung" >
    5. <html>
    6. <head>
    7. <title>Auslosung</title>
    8. <style type="text/css">
    9. body {
    10. font-family: sans-serif;
    11. }
    12. h2 {
    13. font-size: 1.2em;
    14. }
    15. table {
    16. width: 500px;
    17. border-collapse: collapse;
    18. border: 1px solid black;
    19. }
    20. th {
    21. text-align: left;
    22. border: 1px solid black;
    23. padding: 0 5px;
    24. background: silver;
    25. }
    26. td {
    27. border: 1px solid silver;
    28. padding: 0 5px;
    29. }
    30. </style>
    31. </head>
    32. <body >
    33. <xsl:for-each select="raum">
    34. <xsl:call-template name="raeume" />
    35. </xsl:for-each>
    36. </body>
    37. </html>
    38. </xsl:template>
    39. <xsl:template name="raeume" match="raum" >
    40. <h2>
    41. Raum <xsl:value-of select="@name" />
    42. </h2>
    43. <table>
    44. <tr>
    45. <th>Fensterseite</th>
    46. <th>2. Sitzreihe</th>
    47. <th>3. Sitzreihe</th>
    48. </tr>
    49. <!-- hole personen im raum -->
    50. <xsl:for-each select="person[position() mod 3 = 1]" >
    51. <xsl:call-template name="personen"/>
    52. </xsl:for-each>
    53. </table>
    54. <br /><br />
    55. </xsl:template>
    56. <xsl:template name="personen">
    57. <tr>
    58. <xsl:for-each select="preceding-sibling::node()[position()-1 &lt; 3]">
    59. <td>
    60. <xsl:value-of select="name" />, <xsl:value-of select="vorname" /><br />
    61. <xsl:value-of select="matrikel" />
    62. </td>
    63. </xsl:for-each>
    64. </tr>
    65. </xsl:template>
    66. </xsl:stylesheet>
    Alles anzeigen


    Ich hoffe dass das weiterhilft.
    Und was ich noch sagen wollte, vielen Dank für die wirklich schnelle Hilfe. Ich hoffe ich kann Dir/Euch auch mal einen "Stein in den Garten werfen". Selten so nette Hilfe erhalten.

    Gruss
    Nachtvogel
  • wie gesagt, eigentlich kann ich gar kein VBA
    aber dennoch sieht dein Code eher so aus, als ob du eine TXT Datei ausliest und mittels VBA in Excel pastest.

    Ich dachte du wolltest von Excel nach TXT/XML expotieren.

    Auch wenn du es selber schreiben wolltest, hab ich dann dennoch ein bisschen weitergesucht:
    http://www.codeproject.com/useritems/xls2xml.asp

    Sind nur 3,3 KB Quelltest - vielleicht kannst du dich davon inspirieren lassen
  • Hallo,

    der Link löst alle meine Probleme, den Herr Peng (der Autor der Dateien) hat genau das selbe Problem wie ich, eine Studentenliste die in Excel erstellt wurde mittels VBA in ein XML Dokument zu transformieren. ich dachte das es einfacher, bzw. besser ist die excel Daten erst als .txt auszugeben und dann einzulesen. doch dieses Programm gibt den Zelleninhalten die passende Formatierung (<,>,/ usw.) das daraus ein richtiges XML-Dokument samt Deklarationen am Anfang generiert.
    Damit hast Du meinen Hals gerettet!!!!

    Gruss
    Nachtvogel