mikrocontroller.net

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


Autor: Kolja L. (kolja82)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klingt als solltest du besser eine Datenbank (MariaDB) benutzen.

Autor: Kolja L. (kolja82)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Stefan P. (form)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörch B. (captainbee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Powershell : Import-CSV - Export-CSV

Gruß

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kolja L. (kolja82)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kolja L. (kolja82)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kolja L. (kolja82)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörch B. (captainbee)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörch B. (captainbee)
Datum:

Bewertung
0 lesenswert
nicht 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ß

: Bearbeitet durch User
Autor: Marc E. (mahwe)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.