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

XLS zu CSV mit Win.powershell?

Frage Entwicklung

Mitglied: hscheip

hscheip (Level 1) - Jetzt verbinden

01.03.2010, aktualisiert 13:30 Uhr, 5530 Aufrufe, 9 Kommentare

Hallo zusammen, ich sitze jetzt schon einige Zeit an einem Problem und komme einfach nicht weiter...

Ich habe verschiedene XLS dateien die aber alle gleich aufgebaut sind. Diese Dateien müssen zur Weiterverarbeitung in das CSV Format umformatiert werden. Die Tabellen haben alle einen Kopf und die Daten beginnen ab der 3 Spalte (zur seite sind auch noch Datensätze vorhanden). Ich würde mir jetzt gerne ein Skript basteln womit man aus den XLS Dateien CSVs machen kann. Das ganze sollte aber eher einfach sein...das das meine Nutzer auch selbst ausführen können....daher dachte ich an ein Powershell Skript, wo ich einfach einen Input und einen Output Ordner habe und das Skipt wandelt alles um.

Hat jemand vll. eine Idee wie das ganze aussehen müsste?

danke schon mal.

lg hscheip
Mitglied: 76109
01.03.2010 um 11:52 Uhr
Hallo hscheip!

Wenn's nicht unbedingt PowerShell sein muss, mit einem VB-Script (*.vbs) läßt sich so etwas sehr einfach realisieren.

Gruß Dieter
Bitte warten ..
Mitglied: hscheip
01.03.2010 um 12:01 Uhr
Hättest du da einen vorschlag wie ich das ganze machen könnte? mit vbs ab ich so was auch noch nie gemacht.

Lg hscheip
Bitte warten ..
Mitglied: 76109
01.03.2010 um 12:45 Uhr
Hallo hscheip!

Zitat von hscheip:
Hättest du da einen vorschlag wie ich das ganze machen könnte? mit vbs ab ich so was auch noch nie gemacht.
Im Prinzip schon. Das hängt aber erstmal davon ab, was genau exportiert werden soll.

Ganze Zeilen Von Bis oder ab Zeile und Spalte Von Bis, Tabelle1...?

Konstante Eing-/Ausgabe-Pfade?

Trennzeichen Semikolon?

Also, mach mal genauere Angaben

Bei mir wird's allerdings etwas dauern, weil ich jetzt erstmal unterwegs bin. Vielleicht schaut ja in der Zwischenzeit noch ein Scripter vorbei, der Dir hilfreich zur Seite stehen kann.

Gruß Dieter
Bitte warten ..
Mitglied: hscheip
01.03.2010 um 13:07 Uhr
Ah oke dann werd ich das ganze mal etwas genauer beschreiben ^^,
Also es geht um Tabellen die eigentlich Immer unterschiedliche Datensätze haben....einmal 50, das andere mal 100 Einträge. Das ganze sollte dann idealerweise in eine CSV umgewandelt werden, die die Trennungen als Semikolon hat. Die ein und ausgangspfade wären immer gleich.

lg hscheip
Bitte warten ..
Mitglied: bastla
01.03.2010 um 15:29 Uhr
Hallo hscheip!

Ein von Dieter angesprochenes VBScript könnte etwa so aussehen:
01.
OrdnerEin = "D:\Ein" 
02.
OrdnerAus = "D:\Aus" 
03.
 
04.
AbZeile = 2 
05.
AbSpalte = 1 'Spalte A 
06.
Feldanzahl = 7 
07.
 
08.
Set XL = CreateObject("Excel.Application") 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
 
11.
For Each Datei In fso.GetFolder(OrdnerEin).Files 
12.
    If LCase(fso.GetExtensionName(Datei.Name)) = "xls" Then 
13.
        XL.Workbooks.Open Datei.Path 
14.
        Zeile = AbZeile 
15.
        Aus = "" 
16.
        Do While XL.Cells(Zeile, AbSpalte) <> "" 
17.
            Satz = XL.Cells(Zeile, AbSpalte) 
18.
            For i = 1 To Feldanzahl - 1 
19.
                Satz = Satz & ";" & XL.Cells(Zeile, AbSpalte + i) 
20.
            Next 
21.
            Aus = Aus & vbCrLf & Satz 
22.
            Zeile = Zeile + 1 
23.
        Loop 
24.
        If Aus <> "" Then 
25.
            fso.CreateTextFile(OrdnerAus & "\" & fso.GetBaseName(Datei.Name) & ".csv").Write Mid(Aus, 3) 
26.
        End If 
27.
        XL.ActiveWorkbook.Close False 
28.
    End If 
29.
Next 
30.
XL.Quit 
31.
MsgBox "Fertig."
Grüße
bastla
Bitte warten ..
Mitglied: hscheip
01.03.2010 um 16:01 Uhr
danke für das beispiel, ich glaub nur ich bin gerade etwas zu doof um es zu starten. (wie gesagt vbs ist noch neuland für mich), wenn ich das script ausführen will bekomm ich gleich die Meldung das in Zeile 1 bei Zeichen 1 ein Fehler ist.

lg hscheip
Bitte warten ..
Mitglied: 76109
01.03.2010 um 16:55 Uhr
Hallo hscheip, Hallo bastla!

@hscheip
Wie startest Du das Skript? Einen Fehler kann ich auf den ersten Blick nicht erkennen.

Hast Du die Pfade korrekt mit Hochkommata angepasst, z.B. so:
OrdnerEin = "X:\...\...\MeinOrdner"

Oder hast Du vielleicht den Text so mit Zeilennummern kopiert? Dann rechts "Quelltext" anklicken und kopieren.

@bastla
Danke für's einspringen

Gruß Dieter
Bitte warten ..
Mitglied: hscheip
02.03.2010 um 08:14 Uhr
Guten Morgen zusammen, vielen dank jetzt gehts. Ich hatte die "" vergessen zu setzten. Wenn ihr mal in der gegend von Koblenz seit, ein Mittagessen geht auf mich

Lg Holger
Bitte warten ..
Mitglied: 76109
02.03.2010 um 10:16 Uhr
Guten Morgen Holger!

Wow, ein ganzes Mittagessen

Danke für das Angebot. Ein Kaffee oder Cappuccino würde auch genügen

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...