You are not logged in.

  • Login

1

Thursday, November 23rd 2006, 5:11pm

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

2

Saturday, November 25th 2006, 1:37pm

Hi, ich bin OpenOffice Nutzer.
Aber vielleicht hilft dir dieses Tool:

Quoted

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

3

Sunday, November 26th 2006, 12:11pm

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

4

Sunday, November 26th 2006, 2:33pm

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.

Source code

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


Dann sollte auch eine Version mit dieser Ausgabe machbar sein

XML Code

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


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

5

Monday, November 27th 2006, 3:22pm

Das Coding

Hallo,

hier mal das gesamte Coding

VBA:

VisualBasic Quellcode

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


Hier XML

XML Code

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


Hier XSL:

XML Code

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


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

6

Monday, November 27th 2006, 7:10pm

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

7

Wednesday, November 29th 2006, 1:14pm

Ich nochmal

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

Similar threads

Social bookmarks