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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch-Datei um Excel-Datei in Text-Datei zu wandeln

Mitglied: 52028

52028 (Level 1)

14.08.2007, aktualisiert 19.08.2007, 13024 Aufrufe, 8 Kommentare

Hallo zusammen,

nach nun 3-stündiger Suche und vergeblichen Bemühungen trage ich mein Problem mal in die Öffentlichkeit.

Die Problemstellung sieht wie folgt aus. Ich habe eine Excel-Datei mit >30 Spalten und mehreren 1000 Einträgen. (Auch mehrere Tabellenblätter, die interessieren aber nicht!). Ich möchte nun gern die ersten 7 Spalten der Datei in ein pipe-getrenntes Text-File speichern.

Das ganze soll automatisch ablaufen, daher die Idee als Batch-Skript. (Falls es eine elegantere, bzw. weniger aufwändigere Lösung gibt, könnt ihr mir die auch gerne verraten!) ;)

Ich bin bereits darauf gestoßen, dass es schwierig wird das Excel-File direkt zu verarbeiten und habe auch schon den Weg über eine *.CVS-Datei gefunden. Damit wäre der erste Ansatzpunkt ja, das Excel-Sheet automatisch in eine Simikolon-getrennte *.CSV-Datei zu wandeln.

Danach möchte ich dann die CSV-Datei per batch-Verarbeitung in eine Textdatei wandeln. Mein Ansatz hierzu sieht in etwa so aus:

Das Problem an dieser Stelle ist, dass
  • das Simikolon-Trennzeichen der CSV übernommen wird (Ich brauche eine Pipe)
  • nur die erste Spalte in die Textdatei geschrieben wird

Ich hoffe ich konnte mein Problem erläutern und das ihr mich auf den richtigen Weg bringt!
Mitglied: Biber
14.08.2007 um 21:10 Uhr
Moin MarcoS,

>
[code]
FOR /F "tokens=1-7 delims=;" %%a IN (meineCSV.csv) DO echo %%a >> meineTXT.txt
[/code]

Das Problem an dieser Stelle ist, dass
1. Das Simikolon-Trennzeichen der CSV übernommen wird (Ich brauche eine Pipe)
2. Nur die erste Spalte in die Textdatei geschrieben wird


"Problem" ist ein großes Wort...
In der FOR/F-Anweisung willst Du ja die ersten 7 Spalten "erhalten" (tokens 1-7).
Dann musst Du entsprechend auch die dynamischen Variablen %%a...%%g weiterreichen.
Das Trennzeichen "|" musst Du mit einem Caret ("^") maskieren, da es unter Batch eine Steuerzeichen-Bedeutung hat.

Grüße
Biber
Bitte warten ..
Mitglied: 52028
14.08.2007 um 23:29 Uhr
Super, Vielen Dank für die rasche Antwort. Ich habe jetzt gerade leider keine Möglichkeit das auszuprobieren. Gebe aber Rückmeldung sobald ich das getan habe.

Gibt es auch eine Möglichkeit Excel-Dateien direkt zu verarbeiten, oder ist der Zwischenschritt über eine CVS-Datei zwingend notwendig. Vielleicht gibt es kleine Freeware-Tools die diesen Schritt bewerkstelligen und die man einbinden kann.

Aber wie gesagt, ich habe leider keine Möglichkeit das gerade zu testen, sondern kann mich im Moment nur "schlau"-lesen! ;)

Ich habe bisher auch noch gar keine Erfahrung auf diesem Gebiet, kann mir jemand gute Literatur oder Quellen zeigen die sich mit dem Thema beschäftigen? Vor allem die grundsätzliche Syntax interessiert mich.

Viele Grüße!
Bitte warten ..
Mitglied: Biber
15.08.2007 um 01:12 Uhr
Moin marcos,

klar gibt es mögliche Varianten und Wege der Verfeinerung und Automatisierung.
Wahrscheinlich ist allerdings Dein Sachverhalt doch so off road, dass es auch bei Zuhilfenahme eines Freeware-Utilities eher holprig bleibt.
Ich würde in dem Fall, dass Du (aus welchen Gründen auch immer)
  • die Daten in der Excel-Tabelle erzeugst, hast oder pflegst
  • und regelmäßig dieses Export-Format mit den "|"-Trennzeichen brauchst
---> dann drück die Daten über einen Excel-VBA-Makro raus.
So etwas wird hier im Forum meist in wenigen Stunden entwickelt....

Falls Du vorher dennoch selbst auf die Suche nach Utilities gehen willst - vielleicht gibt es ja einen Standalone XLSToCSV-Converter- dann suche nach "CSV" (Comma Separated Values).
Die Abkürzung CVS ist mittlerweile genauso bekannt unter IT-Entwicklern, bezeichnet aber der Quasi-Standard für ein "Concurrent Versions System", ein (Code-)Versionsverwaltungssystem.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
15.08.2007 um 02:09 Uhr
Hallo marcos und willkommen im Forum!

Um Biber's Versprechung (So etwas wird hier im Forum meist in wenigen Stunden entwickelt ...) zumindest in den Grundzügen einzulösen:
Anmerkungen:
Aufgrund des gewünschten Trennzeichens nehme ich an, dass Text in der Zieldatei nicht unter Anführungszeichen zu stehen braucht.
Es werden solange Datenzeilen geschrieben, bis eine Zeile erreicht wird, in der die Zelle in der ersten Datenspalte (ABSPALTE) leer ist.
Zum Testen: Wenn Du auf dem Blattregister ("Tabelle1") per Rechtsklick "Code anzeigen" wählst, kannst Du denn Code in den (jetzt geöffneten) VBA-Editor kopieren und aus dem Tabellenblatt als "Makro" aufrufen.

Grüße
bastla
Bitte warten ..
Mitglied: 52028
15.08.2007 um 11:16 Uhr
Wow, ihr seit wirklich schnell! ;)

Ich bin die nächsten Tage nicht in der Stadt und kann das folglich nicht ausprobieren, werde mich aber zu WE hin auf jeden Fall melden und das ausprobieren!

Vielen Dank auf jeden Fall schonmal!
Bitte warten ..
Mitglied: 52028
18.08.2007 um 14:15 Uhr
So, da bin ich wieder!

Die Erstellung der Text-Datei funktioniert wunderbar. Das Makro funktioniert auch. Allerdings suche ich gerade noch nach der Möglichkeit es mittels batchjob direkt auszuführen. Habe schon versucht es mittels Auto_Open() automatisch starten zu lassen - klappt aber noch nicht. Aber probieren geht über studieren... ;)
Bitte warten ..
Mitglied: 52028
19.08.2007 um 16:30 Uhr
So, ich danke euch nochmal - alles läuft jetzt zu meiner Zufriedenheit.

Nur eine Frage habe ich noch. Ist es theoretisch möglich mit diesem Excel-Makro auch eine andere Datei auszulesen? Ich stell mir das so vor, dass mein Batchjob meine Excel-Datei inklusive Makro aufruft, Excel aber widerum das Makro auf eine ganz andere Datei anwendet, dessen Pfad ich im Makro angeben kann.

Geht sowas theoretisch? Oder sogar praktisch ganz einfach?

Viele Grüße!
Bitte warten ..
Mitglied: bastla
19.08.2007 um 22:09 Uhr
Hallo marcos!

Wenn Du das Ganze über Batch starten willst, sollte die Steuerung von Excel per VBS erfolgen, also etwa in der Art:
Wenn Du das obige Script zB in "C:\Scripts\XLS2CSV.vbs" speicherst, kannst Du es in einer Batchdatei wie folgt aufrufen:
Das Script erwartet die Übergabe einer Exceldatei, für welche die Existenz und der Typ ".xls" geprüft wird. Bei dabei auftretenden Fehlern (oder bei abgefangenen Scriptfehlern), wird eine Fehlermeldung ausgegeben, ansonsten endet das Script mit der Ausgabe von "OK" (oder einem Abbruch wegen eines Scriptfehlers und Anzeige der VBS-Fehlermeldung). Diese Ausgaben werden dazu verwendet, nur bei erfolgreichem Ablauf der Konvertierung zur Marke ":Weiter" zu springen und anderenfalls nach einer "Pause" (zum Lesen der Fehlermeldung) den Batch zu beenden.

Die Ausgabedatei erhält den selben Namen mit Typ ".csv" und wird in den gleichen Ordner wie die Exceldatei geschrieben.

Als Alternative habe ich eine zweite "DATEI = ..."-Zeile für die Verwendung eines konstanten Zielpfades (aber weiterhin variablen Dateinamens) dargestellt. Eine ev bereits vorhandene Zieldatei wird in beiden Fällen ohne Rückfrage überschrieben.

Die wahrscheinlichsten Fehler, die während der Konvertierung auftreten könnten (zB "Tabelle1" nicht vorhanden), werden in der aktuellen Fassung des Scripts abgefangen, sodass der unschöne Nebeneffekt eines Script-Fehlers (nämlich, dass Excel im Hintergrund weiterhin laufen und die ".xls"-Datei geöffnet halten könnte und daher über den Taskmanager, Register "Prozesse", beendet werden müsste) - eigenlich nicht auftreten sollte. Die Konstanten am Beginn des Programms werden allerdings nicht geprüft, sodass eine falsche Zeilen- oder Spaltennummer den beschriebenen Effekt trotzdem herbeiführen könnte ...

Grüße
bastla

P.S.: Für die adäquate Beschreibung des Errorhandlings in VBS fehlen mir einmal mehr die (jugendfreien) Worte ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit Einer Batch Datei Text Bearbeiten
gelöst Frage von ronny30021Batch & Shell2 Kommentare

Guten Tag miteinader Ich habe folgendes Problem: Ich würde gerne mit einer Batch-Datei eine Text-Datei durchsuchen, Das gesuchte wort ...

Batch & Shell
Batch: Datei mit Datei durchsuchen
Frage von dergringo73Batch & Shell5 Kommentare

Hallo Ich habe folgendes Script was ich nun verändern möchte. Kurz zum aktuellen Stand: In der Datei products.json sollen ...

Batch & Shell

Excel Makro über Batch Datei ausführen

Frage von Kevin091Batch & Shell4 Kommentare

Guten Abend, ich wollte mal fragen, ob es möglich ist ein Excel Makro über eine Batch Datei auszuführen. Ich ...

Batch & Shell

Text mit Batch Datei durchsuchen und ausgeben

Frage von newbie201Batch & Shell3 Kommentare

Hallo, ich bin blutiger Anfänger wenn es um batch Dateien geht, kann mir bitte jemand bei folgendem Problem helfen? ...

Neue Wissensbeiträge
Festplatten, SSD, Raid
Stop Error 0x0000007B (INACCESSIBLE BOOT DEVICE)
Anleitung von evinben vor 1 StundeFestplatten, SSD, Raid

Systemstand Windows 7, 64-Bit, einschließlich allen Updates bis 10.09.2020 DELL Latitude E6330 PCI-Bus IRQ-Kanal 19 Standard AHCI 1.0 Serieller-ATA-Controller IRQ-Kanal ...

Sicherheit
NSA: UEFI und Secure Boot einsetzen
Ticker von sabines vor 1 TagSicherheit3 Kommentare

Hilfreicher Heise Artikel zu UEFI und Secure Boot Tipps der NSA Näheres hier: NSA Bericht

DSL, VDSL
Ein Wechsel von einem DSL Anbieter zum anderen
Erfahrungsbericht von brammer vor 1 TagDSL, VDSL20 Kommentare

Hallo, diesmal bin ich glatt selber betroffen. nachdem ich in den letzten Jahren regelmäßig bei allen Anbietern angefragt habe ...

Sicherheit

Anatomie eines Super-GAUs - Erfahrungen eines IT-Securityberaters

Ticker von DerWoWusste vor 1 TagSicherheit5 Kommentare

Ein sehr unterhaltsamer Vortrag (58 min) von Mark Semmler. Abrufbar bis 31.10. ist ganz oben auf zu finden. Es ...

Heiß diskutierte Inhalte
Batch & Shell
GPO Powershell oder Batch mit Adminrechte ausführen
Question by stoepsu77Batch & Shell22 Comments

Hallo Zusammen ich bin leicht am verzweifeln ich möchte über eine GPO den Registry Eintrag des Startlayouts ändern. und ...

DSL, VDSL
Ein Wechsel von einem DSL Anbieter zum anderen
Report by brammerDSL, VDSL20 Comments

Hallo, diesmal bin ich glatt selber betroffen. nachdem ich in den letzten Jahren regelmäßig bei allen Anbietern angefragt habe ...

Batch & Shell
Forum über die Powershell Kraftmuschel
solved Question by fe-mi-fiBatch & Shell18 Comments

Hallo Administratoren, Da es hier anscheinend nicht so gern gesehen ist, eine Frage über die Powershell zu stellen, nur ...

Education & Training
Einstieg in die Linux Welt
Question by simi2204Education & Training13 Comments

Hallo zusammen, ich bin dieses Jahr im Juli mit meiner Ausbildung zum Fachinformatiker für Systemintegration fertig geworden und bin ...

Administrator Magazin
09 | 2020 Ein Internetauftritt ist für Firmen heute eine Selbstverständlichkeit, doch gilt es beim Betrieb der entsprechenden Server einiges zu beachten. Im September beleuchtet das IT-Administrator Magazin deshalb das Schwerpunktthema "Webdienste und -server". Darin lesen Sie unter anderem, wie Sie Webapplikationen sinnvoll überwachen und welche Open-Source-Managementtools ...