Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst CSV Daten in Excel umwandeln per VBS Script

Mitglied: Quercus

Quercus (Level 1) - Jetzt verbinden

05.05.2012, aktualisiert 17:18 Uhr, 4857 Aufrufe, 4 Kommentare

Moin,

unten aufgeführtes script habe ich hier aus dem Forum gefunden welches dann mit hilfe von Bastla noch verfeinert wurde ;)
funktionierte auch soweit mit meinen alten csv Daten einwandfrei, nun hat sich die ausgabe Datei in der CSV Datei leider in Spalte 3 geändert (der Matchcode ist in der Ausgabe weggefallen, dieser war mit den Daten in Anführungszeichen "blabla" formatiert.)

um konstruktive Hilfe wäre ich sehr Dankbar ;)

Hier das VBS Script welches ich momentan in verwendung habe:

01.
'CSV2XLS.vbs 
02.
sOutPathDefault = "C:\test\KonvertierteCSV" 'Angabe des Default-Zielpfades ohne abschließenden "\" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
If WScript.Arguments.Count = 0 Then 
06.
	WScript.Echo "Keine Quelldatei angegeben!" 
07.
	WScript.Quit(1) 
08.
End If 
09.
 
10.
sInFile = WScript.Arguments(0) 
11.
If Not fso.FileExists(sInFile) Then 
12.
	WScript.Echo sInFile & " nicht gefunden!" 
13.
	WScript.Quit(1)	 
14.
Else 'Pfad der Quelldatei zerlegen 
15.
	Set oInFile = fso.GetFile(sInFile) 'für vollständige Dateiangaben aus Dateisystem 
16.
	sInPath = oInFile.Path 'voller Quelldateipfad - wird zum Einlesen verwendet 
17.
	sInFileName = Left(oInFile.Name, InstrRev(oInFile.Name, ".") - 1) 'Dateiname ohne Pfad und Typ 
18.
	sInFileType = Mid(oInFile.Name, InstrRev(oInFile.Name, ".")) 'für Überprüfung auf CSV 
19.
	Set oInFile = Nothing 
20.
End If 
21.
 
22.
If WScript.Arguments.Count > 1 Then 
23.
	sOutFilePath = WScript.Arguments(1) 'angegebenen Zielpfad verwenden 
24.
Else 
25.
	sOutFilePath = sOutPathDefault 'kein Zielpfad angegeben - Default verwenden 
26.
End If 
27.
 
28.
If Not fso.FolderExists(sOutFilePath) Then 'Zielpfad nicht vorhanden, daher ... 
29.
	On Error Resume Next 
30.
	fso.CreateFolder(sOutFilePath) '... zu erstellen versuchen 
31.
	If Err.Number > 0 Then 
32.
		WScript.Echo "Ungueltiger Zielpfad: " & sOutFilePath 
33.
		WScript.Quit(1) 
34.
	Else 
35.
		On Error Goto 0 'Standardfehlerbehandlung wieder einschalten 
36.
	End If 
37.
End If 
38.
 
39.
If LCase(sInFileType) = ".csv" Then 'bei Typ ".csv" für Import in Temp-File kopieren 
40.
	sInPathTemp = sOutFilePath & "\" & sInFileName & ".tmp" 'Temp-File im Zielverzeichnis anlegen (Annahme: dort Schreibrechte) 
41.
	fso.CopyFile sInPath, sInPathTemp 
42.
	sInPath = sInPathTemp 'Daten aus Temp-File lesen 
43.
End If 
44.
 
45.
sOutPath = sOutFilePath & "\" & sInFileName & ".xls" 'Zieldateipfad erstellen 
46.
Do While InStr(sOutPath, "\\") 'vermeiden doppelter (mehfacher) "\" im Zieldateipfad (stört Excel offensichtlich nur beim Speichern) 
47.
	sOutPath = Replace(sOutPath, "\\", "\") 
48.
Loop 
49.
 
50.
Set oXL = CreateObject("Excel.Application") 
51.
With oXL 
52.
	.Workbooks.OpenText sInPath, , , , , , , True, , , , ,Array(Array(1, 1),Array(2, 2))	 
53.
	On Error Resume Next 
54.
	.ActiveWorkbook.ActiveSheet.Cells.EntireColumn.AutoFit 'Optimale Spaltenbreite für alle Spalten setzen 
55.
	.DisplayAlerts = False 'Keine Rückfrage beim Überschreiben schon vorhandener Zieldatei 
56.
	.ActiveWorkbook.SaveAs sOutPath, -4143 'Speichern als .xls 
57.
If Err.Number > 0 Then 
58.
		CleanUp 
59.
		WScript.Echo sOutPath & " konnte nicht gespeichert werden!" 
60.
		WScript.Quit(1) 
61.
	End If 
62.
	 
63.
End With 
64.
CleanUp 
65.
 
66.
Sub CleanUp 
67.
oXL.Quit 
68.
Set oXL = Nothing 
69.
If LCase(sInFileType) = ".csv" Then 
70.
	On Error Resume Next 
71.
	fso.DeleteFile sInPathTemp 'temporäre Import-Datei zu löschen versuchen 
72.
End If 
73.
End Sub
dazu noch die Aufruf bat in die ich dann die csv Datei ziehe:
01.
@echo off & setlocal 
02.
set "Quelle=C:\test\ZuKonvertierendeCSV" 
03.
set "Ablage=C:\test\KonvertierteCSV" 
04.
set "Ziel=C:\test\AusCSVKonvertierteXLS" 
05.
set "Log=C:\test\Konvertierungsfehler.txt" 
06.
if not exist "%Ablage%" md "%Ablage%" 
07.
for %%i in (%Quelle%\*.csv) do call :ProcessFile "%%i" 
08.
goto :eof 
09.
:ProcessFile 
10.
cscript //nologo C:\test\Scripts\CSV2XLS.vbs %1 "%Ziel%">>"%Log%" || goto :eof 
11.
move %1 "%Ablage%" 
12.
goto :eof
bei dieser CSV Datei funktioniert das Script wie gewünscht mit der Ausgabe:
Zeile 1 beinhaltet die Namen der Spalten hier leider mit Zeilenumbruch dargestellt da sonst im Forum nicht ganz angezeigt.
01.
Mandant;Artikelnummer;Matchcode;USER_DEL;USER_RV;USER_Zollnummer;USER_EClass;USER_nnnWay;USER_aaaaKat;USER_bbbKatalog;USER_ccKat;USER_TDM;USER_dddKatalog;USER_fff;USER_PDF;USER_ggggg512;USER_hhhhhheinsatzgewicht;USER_PRICAT; 
02.
USER_QUANTITYMIN;USER_Gewichtaktuell;USER_iiiiiiiSachnr;USER_Lieferzeitkkkkkkk;USER_lllllllLager;USER_Druckunterbinden;USER_ArtikelnummerExtern;USER_ArtikelVarianteExtern;USER_IstPackstueck;USER_ColliUmrechnung;USER_IstExportiert2MDE;USER_PickPlatzID; 
03.
USER_MengenvorschlagMDE;USER_Etikett;USER_EtikettDrucker;USER_EtikettBericht;USER_EtikettEK;USER_EtikettVK;USER_EtikettPreis;USER_AnzahlEtikettenDef;USER_MDEKeineFreigabe;USER_mmmmmmmmm 
04.
1;"000001";"10/25mm/1:10=8,9/plan";0;;;;0;0;0;0;0;0;0;;;0,00;;0,00;0;;;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0
mit meiner neuen CSV Datei leider nicht mehr: Einzige änderung ist das der "matchcode" nicht mehr vorhanden ist
Zeile 1 beinhaltet die Namen der Spalten hier leider mit Zeilenumbruch dargestellt da sonst im Forum nicht ganz angezeigt.

01.
Mandant;Artikelnummer;USER_DEL;USER_RV;USER_Zollnummer;USER_EClass;USER_nnnWay;USER_aaaaKat;USER_bbbKatalog;USER_ccKat;USER_TDM;USER_dddKatalog;USER_fff;USER_PDF;USER_ggggg512;USER_hhhhhheinsatzgewicht;USER_PRICAT; 
02.
USER_QUANTITYMIN;USER_Gewichtaktuell;USER_iiiiiiiSachnr;USER_Lieferzeitkkkkkkk;USER_lllllllLager;USER_Druckunterbinden;USER_ArtikelnummerExtern;USER_ArtikelVarianteExtern;USER_IstPackstueck;USER_ColliUmrechnung;USER_IstExportiert2MDE;USER_PickPlatzID; 
03.
USER_MengenvorschlagMDE;USER_Etikett;USER_EtikettDrucker;USER_EtikettBericht;USER_EtikettEK;USER_EtikettVK;USER_EtikettPreis;USER_AnzahlEtikettenDef;USER_MDEKeineFreigabe;USER_mmmmmmmmm 
04.
1;"000001";0;;;;-1;;;;;;;;;0,00;;;;;;;;;;0;;0;;;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
05.
1;"000274";0;;;;0;0;0;0;0;0;0;;;0,60;;0,00;0;"F365290521361";;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
06.
1;"000302";0;;;"27-06-04-04";0;0;0;0;0;0;0;;;0,00;;0,00;-1;"B883380534643";;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
07.
1;"100192";0;;;"27-06-20-08";-1;0;0;0;0;0;0;;;1,45;11.03.2011;5,00;0;"B883330527547";30;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
08.
1;"100214";0;;;;0;0;0;-1;0;0;0;;"21089190";0,30;01.02.2012;1,00;0;;;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0;
[Edit Biber] Codeformatierung nachgetragen [/Edit]
Mitglied: bastla
05.05.2012 um 12:03 Uhr
Hallo Quercus!

Die Darstellung "am Stück" kannst Du mit "Code"-Formatierung erreichen - das sähe dann so
01.
Mandant;Artikelnummer;Matchcode;USER_DEL;USER_RV;USER_Zollnummer;USER_EClass;USER_nnnWay;USER_aaaaKat;USER_bbbKatalog;USER_ccKat;USER_TDM;USER_dddKatalog;USER_fff;USER_PDF;USER_ggggg512;USER_hhhhhheinsatzgewicht;USER_PRICAT;USER_QUANTITYMIN;USER_Gewichtaktuell;USER_iiiiiiiSachnr;USER_Lieferzeitkkkkkkk;USER_lllllllLager;USER_Druckunterbinden;USER_ArtikelnummerExtern;USER_ArtikelVarianteExtern;USER_IstPackstueck;USER_ColliUmrechnung;USER_IstExportiert2MDE;USER_PickPlatzID;USER_MengenvorschlagMDE;USER_Etikett;USER_EtikettDrucker;USER_EtikettBericht;USER_EtikettEK;USER_EtikettVK;USER_EtikettPreis;USER_AnzahlEtikettenDef;USER_MDEKeineFreigabe;USER_mmmmmmmmm 
02.
1;"000001";"10/25mm/1:10=8,9/plan";0;;;;0;0;0;0;0;0;0;;;0,00;;0,00;0;;;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0
bzw so
01.
Mandant;Artikelnummer;USER_DEL;USER_RV;USER_Zollnummer;USER_EClass;USER_nnnWay;USER_aaaaKat;USER_bbbKatalog;USER_ccKat;USER_TDM;USER_dddKatalog;USER_fff;USER_PDF;USER_ggggg512;USER_hhhhhheinsatzgewicht;USER_PRICAT;USER_QUANTITYMIN;USER_Gewichtaktuell;USER_iiiiiiiSachnr;USER_Lieferzeitkkkkkkk;USER_lllllllLager;USER_Druckunterbinden;USER_ArtikelnummerExtern;USER_ArtikelVarianteExtern;USER_IstPackstueck;USER_ColliUmrechnung;USER_IstExportiert2MDE;USER_PickPlatzID;USER_MengenvorschlagMDE;USER_Etikett;USER_EtikettDrucker;USER_EtikettBericht;USER_EtikettEK;USER_EtikettVK;USER_EtikettPreis;USER_AnzahlEtikettenDef;USER_MDEKeineFreigabe;USER_mmmmmmmmm 
02.
1;"000001";0;;;;-1;;;;;;;;;0,00;;;;;;;;;;0;;0;;;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
03.
1;"000274";0;;;;0;0;0;0;0;0;0;;;0,60;;0,00;0;"F365290521361";;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
04.
1;"000302";0;;;"27-06-04-04";0;0;0;0;0;0;0;;;0,00;;0,00;-1;"B883380534643";;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
05.
1;"100192";0;;;"27-06-20-08";-1;0;0;0;0;0;0;;;1,45;11.03.2011;5,00;0;"B883330527547";30;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0; 
06.
1;"100214";0;;;;0;0;0;-1;0;0;0;;"21089190";0,30;01.02.2012;1,00;0;;;0;0;;;0;0,00;0;;0,00;0;"Zebra TLP2824 Plus - ZPL";"rptEtikett_ArtNr_REMA_5x3";;;-1;1;0;
aus.

Mit Deinem geposteten Script und beiden Testdateien erhalte ich (mit Excel 2007) vernünftig aussehende Ergebnisse - daher kann ich das Problem nicht nachvollziehen ...

Grüße
bastla
Bitte warten ..
Mitglied: Quercus
05.05.2012 um 12:26 Uhr
Hallo Bastla,

hab es gerade mit dem hier geposteten testdaten als neu erstellte CSV datei probiert. hier komm ich auf gleiches ergebnis wie du.

nur mit der orginal erstellten csv Datei die aus einem Programm uns erstellt wird hab ich die probleme!

leider kann ich hier keine XLS Dateien anhängen sonst würdest du sehen das die Daten verschoben sind gegenüber dem orginal wenn ich die Csv über Ecxel importieren kann.


verwende Excel 2007 und 2010 bei beiden das darstellungsproblem...
Bitte warten ..
Mitglied: bastla
05.05.2012 um 13:35 Uhr
Hallo Quercus!

Aus mir unbekannten Gründen wird bei beim Import die neue CSV nicht automatisch als "Getrennt" zu zerlegen interpretiert - ändere daher im Script auf
	.Workbooks.OpenText sInPath, , , 1, , , , True, , , , ,Array(Array(1, 1),Array(2, 2))
Grüße
bastla
Bitte warten ..
Mitglied: Quercus
05.05.2012 um 13:44 Uhr
Hallo Bastla,


merci das ist die lösung


verbeug und noch ein schönes Wochenende wünsche


Gruß

Quercus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
XML in CSV umwandeln
gelöst Frage von jochengBatch & Shell2 Kommentare

Hallo Leute Ich habe folgende XML Datei die ich mit einem Batch in eine CSV umwandeln will. Mein Problem ...

VB for Applications
Csv in xml umwandeln mit VBA
Frage von 130771VB for Applications8 Kommentare

Hallo zusammen, ich bin neu in der Commuity und auch neu im Bereich der Programmierung mit VBA. Ich habe ...

Batch & Shell
CSV mit Powershell umwandeln
gelöst Frage von mayli01Batch & Shell3 Kommentare

Hallo, in einer spalte einer CSV Datei habe ich zahlen von 0-100. Die spalte enthält eine Kopfzeile (Stk.). Nun ...

XML
Csv in Xml umwandeln
Frage von tester23XML12 Kommentare

Hallo, nach langer Zeit habe ich wieder eine Frage. Ich bekomme eine csv-Datei, und um die weiter verarbeiten zu ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 19 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk13 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...