Forum: PC Hard- und Software CSV in Excel automaitsch importieren


von Kolja L. (kolja82)


Lesenswert?

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
von Horst (Gast)


Lesenswert?

Das klingt als solltest du besser eine Datenbank (MariaDB) benutzen.

von Kolja L. (kolja82)


Lesenswert?

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 :-(

von Uwe (Gast)


Lesenswert?

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ß

von Stefan P. (form)


Lesenswert?

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.

von Der kein Bock mehr A. (Gast)


Lesenswert?

Powershell : Import-CSV - Export-CSV

Gruß

von Dirk B. (dirkb2)


Lesenswert?

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?

von Kolja L. (kolja82)


Lesenswert?

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?

von Dirk B. (dirkb2)


Lesenswert?

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
von Dirk B. (dirkb2)


Lesenswert?

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?

von Kolja L. (kolja82)


Lesenswert?

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.

von Dirk B. (dirkb2)


Lesenswert?

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.

von Kolja L. (kolja82)


Lesenswert?

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 :-(

von Dirk B. (dirkb2)


Lesenswert?

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.

von Der kein Bock mehr A. (Gast)


Lesenswert?

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ß

von Dirk B. (dirkb2)


Lesenswert?

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?

von Der kein Bock mehr A. (Gast)


Lesenswert?

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ß

von Marc E. (mahwe)


Lesenswert?

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
Noch kein Account? Hier anmelden.