Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per Batch (oder Excel-Makro) XML-Dateien mit Inhalt gefüllt aus Excel-Datenbank erstellen

Frage Entwicklung Batch & Shell

Mitglied: dawson

dawson (Level 1) - Jetzt verbinden

12.09.2011 um 23:00 Uhr, 5412 Aufrufe, 5 Kommentare

Hallo,
ich habe eine Excel-Datei mit einem Tabellenblatt. In jeder Zeile steht ein Datensatz mit den Spalten-Angaben "Datei-Name", "Datei-Endung", "XML-Tag" und "Inhalt".
Jetzt möchte ich via Batch-Datei (oder auch Excel-Makro ggf.) für jede Zeile dieser Datenbank eine XML-Datei anlegen (Datei-Endung sollte variabel sein, also nicht zwingend .xml) und darin als Inhalt ein paar Zeilen XML, bzw. einfacher Text.

Geht das? Welcher Ansatz?
Ich weiß nicht mal, nach was ich da googeln sollte.
Gehts mit Batch oder doch eher via Excel-Marko?

Vielen Dank schon mal.
Mitglied: bastla
12.09.2011 um 23:51 Uhr
Hallo dawson!
Gehts mit Batch oder doch eher via Excel-Marko?
Kommt drauf an, was der Marko so drauf hat ...

Für das mit
ein paar Zeilen XML
fehlt mir momentan grade die nötige Fantasie ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
13.09.2011 um 00:10 Uhr
Hallo dawson.

XML Dateien haben sehr strenge Syntaxregeln. Irgendeine Textdatei mit Endung XML ergibt noch lange keine XML Datei. Andererseits hast du durchaus Recht, dass eine XML Datei nicht zwingend die Endung XML haben muss.
Also, mindestens sollten wir noch die Zeichcodierung wissen, sowie den Name des Root-Elements.
Per Batch kommst du im Übrigen nicht an den Inhalt einer Excel Datei, mit VBScript allerdings schon.

Grüße
rubberman
Bitte warten ..
Mitglied: dawson
13.09.2011 um 01:39 Uhr
@bastla: da hat sich doch glatt ein Schreibfehler eingeschlichen. Und du hast ihn gefunden. Ganz toll gemacht!

@rubberman: Also, die "XML"-Datei hat eine Fantasie-Endung, die je Zeile individuell festgelegt ist und der Inhalt wird wie folgt aufgebaut sein (abhängig wieder von einem Zellinhalt in der Zeile):
<rootelement>
<text>Inhalt der Zeile</text>
</rootelement>
Mehr steht da nicht drin.

Gut, d.h. Batch ist nicht. Aber aus einer txt-Datei könnte ich doch via Batch auslesen. Bräuchte es ja aus der Excel-Datei nur als txt mit Semikolon abspeichern.

Gibts da gute Tuts irgendwo im Netz?
Bitte warten ..
Mitglied: bastla
13.09.2011 um 07:39 Uhr
Hallo dawson!
Ganz toll gemacht!
Danke für das Kompliment ...

... das ich leider hinsichtlich der Darstellung Deines Vorhabens (vor allem im Eröffnungsposting) nicht uneingeschränkt zu erwidern vermag - und wenn es jetzt heißt:
<text>Inhalt der Zeile</text>
ist für mich noch immer nicht klar, ob dieser Text nun doch einzeilig ist oder es in der Zelle Zeilenumbrüche gibt ...

Und: Kannst Du bestätigen, dass das "rootelement" ein konstanter Wert ist?

Ansonsten kann ich mich rubberman nur anschließen: Wenn Du den Ablauf automatisieren willst, kommst Du um VB(A/S) nicht herum (und sei es nur, um die Daten in eine Textdatei zu exportieren) ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.09.2011 um 00:45 Uhr
Hallo Zusammen,

ich versuche mal einen Schuss ins Blaue (vielleicht treffe ich ja zufälligerweise ins Schwarze ).

*.vbs
01.
Const strXLFile = "D:\irgendwo\test.xls" 
02.
Const iWorksheet = 1 
03.
Const strDestDir = "D:\irgendwo" 
04.
Const strEncoding = "UTF-8" 
05.
Const strRootElement = "rootelement" 
06.
 
07.
Set objADOS = CreateObject("ADODB.Stream") 
08.
objADOS.Type = 2 
09.
 
10.
line = 0 
11.
Set objWB = GetObject(strXLFile) 
12.
Set objWS = objWB.Worksheets(iWorksheet) 
13.
Do While objWS.Cells(line + 1, 1).Text <> "" 
14.
  line = line + 1 
15.
  With objADOS 
16.
    .Open 
17.
    .Charset = strEncoding 
18.
    .WriteText "<?xml version=""1.0"" encoding=""" & strEncoding & _ 
19.
      """?>" & vbCrLf & "<" & strRootElement & ">" & vbCrLf & vbTab & "<" & _ 
20.
      objWS.Cells(line, 3).Text & ">" & objWS.Cells(line, 4).Text & "</" & _ 
21.
      objWS.Cells(line, 3).Text & ">" & vbCrLf & "</" & strRootElement & ">" 
22.
    .Position = 0 
23.
    .SaveToFile strDestDir & "\" & objWS.Cells(line, 1).Text & _ 
24.
      "." & objWS.Cells(line, 2).Text, 2 
25.
    .Close 
26.
  End With 
27.
Loop 
28.
 
29.
Set objWS = Nothing 
30.
objWB.Close 
31.
Set objWB = Nothing 
32.
Set objADOS = Nothing
Die Konstanten am Anfang des Codes anpassen und testen.

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...