Nabend Ich suche nach einer Möglichkeit CSV-Dateien mit automatisch in Excel zu importieren. Die Quelldateien haben immer den selben Aufbau, aber können identische Zeilen haben: erste.csv 1 2 3 4 zweite.csv 3 4 5 6 Bislang öffne ich jede csv Datei im Notepad, markiere und kopiere die neuen Zeilen und füge diese unter die bestehenden Datensätze im Exceldokument. Schön wäre es, wenn ich die neue CSV nur in einen bestimmten Ordner legen muss und dann werden die neuen Datensätze automatisch im Dokument eingefügt. Wie kann man das realisieren? Danke und Gruß edit: Wie ich gerade feststellen musste, enthalten die CSV Dateien diese blöden unsichtbaren LF (LineFeed) Zeichen.Diese müssen vor dem einfügen in die Tabelle entfernt werden. Sau ärgerlich soetwas!
:
Bearbeitet durch User
Das klingt als solltest du besser eine Datenbank (MariaDB) benutzen.
Am liebsten würde ich es mit sql machen, bin aber leider nicht der einzige, der das System nutzen wird. Daher ist Excel leider alternativlos :-(
Sieh Dir doch mal Power Query an. Da kann einiges beim csv import realisiert werden. https://www.datenjungs.de/2018/05/15/excel-power-query-und-powerpivot- die-beiden-grossen-unbekannten/ Gruß
Benenne die Dateien in *.tsv um und ziehe sie einfach aufs Excel-Fenster (oder verknüpfe den Dateityp mit Deiner excel.exe). Das Unix-Encoding (Nur LFs) stellt dabei kein Problem dar. Falls Du anders als in Deinem Beispiel mehr als 1 Spalte hast und diese per Komma getrennt sind, musst Du die Kommata vorher durch TABs ersetzen lassen.
Kolja L. schrieb: > edit: Wie ich gerade feststellen musste, enthalten die CSV Dateien diese > blöden unsichtbaren LF (LineFeed) Zeichen.Diese müssen vor dem einfügen > in die Tabelle entfernt werden. > Sau ärgerlich soetwas! Der Zeilentrenner bei Windows ist CR und LF. Unix benutzt nur LF Entfernen ist eine doofe Idee Schon mal mit Rechtsclick und "öffnen mit" Excel probiert?
Danke für die ganzen Hinweise, der einfachste funktioniert: Dirk B. schrieb: > Schon mal mit Rechtsclick und "öffnen mit" Excel probiert? Warum ist mir jetzt fast egal :-) Zurück zur ursprünglichen Frage: Kann das Einlesen der CSV Dateien automatisiert und dabei gleich Duplikate erkannt und gelöscht werden?
Kolja L. schrieb: > Kann das Einlesen der CSV Dateien automatisiert und dabei gleich > Duplikate erkannt und gelöscht werden? Mit VBA und/oder COM geht Automatisierung von Excel. Das hängt ganz davon ab, was du machen möchtest. Was du wirklich machen möchtest! Was passiert mit den Daten im Excel. Ist Excel nur eine Krücke, weil du damit erstmal dein Ziel erreicht hast? Für Berechnungen oder für Diagramme gibt es auch andere Lösungen. Für Datenbanken sowieso.
:
Bearbeitet durch User
Kolja L. schrieb: > Danke für die ganzen Hinweise, der einfachste funktioniert: > > Dirk B. schrieb: >> Schon mal mit Rechtsclick und "öffnen mit" Excel probiert? > > Warum ist mir jetzt fast egal :-) Das konnte Excel schon immer. Blöd ist nur das Dezimaltrennproblem. Warum ist bei dir nicht *.csv mit Excel verknüpft?
Dirk B. schrieb: > Was passiert mit den Daten im Excel. Die werden zerstückelt und neu sortiert :-) Dirk B. schrieb: > Ist Excel nur eine Krücke, weil du damit erstmal dein Ziel erreicht > hast? Jain Krücke ja, ich würde es lieber mit Python oder PHP + Datenbank machen, aber ich will/kann in Zukunft keine "Support" dafür geben. Die Excel Datei, wenn sie einmal steht, kann (fast) jeder auf seinem Rechner öffnen und damit arbeiten. Das ist das, worum man mich gebeten hat. Dirk B. schrieb: > Mit VBA und/oder COM geht Automatisierung von Excel. > > Das hängt ganz davon ab, was du machen möchtest. > Was du wirklich machen möchtest! Die "Analyse" der Daten ist unabhängig von dem Einlesen der CSV Dateien, daher suche ich nur nach der Möglichkeit jene zu automatisieren. Vor VBA habe ich ein wenig "Angst" bze Respekt, weil ich damit noch nie gearbeitet habe.
Kolja L. schrieb: > Vor VBA habe ich ein wenig "Angst" bze Respekt, weil ich damit noch nie > gearbeitet habe. VBA ist die Makrosprache von Excel. Makro aufzeichen (z.B. CSV Datei laden) und dann im Editor ansehen und den Bedürfnissen (Dateiname oder Ähnliches) anpassen. Kolja L. schrieb: > Krücke ja, ich würde es lieber mit Python oder PHP + Datenbank machen, Python und sqlite3 kann auch reichen. Kolja L. schrieb: > aber ich will/kann in Zukunft keine "Support" dafür geben. Das wirst du in jedem Fall für Excel machen müssen, denn Microsoft ändert gerne mal die API.
Dirk B. schrieb: > VBA ist die Makrosprache von Excel. > Makro aufzeichen (z.B. CSV Datei laden) und dann im Editor ansehen und > den Bedürfnissen (Dateiname oder Ähnliches) anpassen. Und genau das geht ja eben nicht, da über den CSV Import die blöden Zeilenumbrüche im Dokument erscheinen :-(
Kolja L. schrieb: > Dirk B. schrieb: >> VBA ist die Makrosprache von Excel. >> Makro aufzeichen (z.B. CSV Datei laden) und dann im Editor ansehen und >> den Bedürfnissen (Dateiname oder Ähnliches) anpassen. > > Und genau das geht ja eben nicht, da über den CSV Import die blöden > Zeilenumbrüche im Dokument erscheinen :-( Wenn es mit dem Rechtsclick geht, dann kannst du sie auch laden bzw. öffnen. (nicht importieren) Und wenn das immer noch nicht geht, dann liest du sie Zeilenweise ein und schreibst die Daten per VBA in die Zellen.
Hey, fangt doch erst gar nicht mit VBA oder Python an, Powershell ist gleich mit an Bord und hat fast alle nötigen Module z.B. für Office und OS-Funktionen dabei. Nix gegen Python, aber das ist ja wieder "extern". Und VBA ... bitte lasst es endlich seinen wohlverdienten Tod sterben. Mit PS kann man ein Workbook, also ein Excel-Worksheet öffnen, über Import-CSV sortiert und gefiltert befüllen und hübsch im gewollten Zielformat wieder abspeichern. Der Code dazu ist so billig, dass man das bei ausreichender Kommentierung auch mal an Nachfolger etc. übergeben kann. VBA wird sterben, irgendwann kann das keiner mehr. MS setzt auf Powershell und das ist eine der wenigen "guten" Erfindungen die die in den letzten Jahren vollbracht haben. Probiers mal aus, das Goorakel hat da so manche fertige Lösung parat. Guck dass die Beipisele nicht zu alt sind, die ersten PS-Versionen waren noch mit viel Dummfug-Module-Gedöns überfrachtet. Mittlerweile ist fast alles On-Board. Gruß
Wenn du mit Powershell Excel steuern möchtest, geht das ja via COM. Das sind dann eigentlich dieselben Methoden wie bei VBA auch. Man benutzt also die VBA Doku, um an die Methoden und Funktionen für COM zu kommen. Läuft das Powershell-Script auch innerhalb von Excel?
Dirk B. schrieb: > Wenn du mit Powershell Excel steuern möchtest, geht das ja via COM. > Das sind dann eigentlich dieselben Methoden wie bei VBA auch. > Man benutzt also die VBA Doku, um an die Methoden und Funktionen für COM > zu kommen. Wie auch immer, zumindest sprachlich robuster und einfacher > Läuft das Powershell-Script auch innerhalb von Excel? Oh, keine Ahnung. Ich hätte das DIng jetzt so gestaltet, dasser erst die beiden CSVs einliest (Öffnen-Dialog bauen oder fester Dateiablageplatz) und dann erst Excel öffnet. Ich hatte vor gefühlten 1000 Jahren (Anfang 2000er) für eine Baufirma mal ein CSV-Zusammenlutsch-Tool auf Perl-Basis gebaut, Kanaldaten mit 20.000 Einträgen und so. Die Sachberabeiterinnen hatten auch erst Angst davor, irgendne Batch anzuklicken und dann das schwarze Fensterchen mit Daten vorbeirauschen zu sehen, aber als dann das fertige Excel aufploppte waren sie Glücklich. Vorher mussten die das in handarbeit machen, 6 Wochen Arbeit für 2 Kolleginnen. Hätts damals schon PS gegeben, wärs schöner geworden ;-) Wie gesagt, einfach einen Datei-Öffnen Dialog mit reingebastelt, dann verlieren die User die Angst und das Tool läuft von allein. Achso Kolja, LF rausstrippen sollte auch kein Problem sein. Gruß
Was ist mit matlab oder heute nutzen doch alle Python. Exel hat die doofe Angewohnheit das wenn mann mehr als 80000-100000Datensatze hat es extrem langsam wird und ihrgend wann streikt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.