"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Software für Flatfile-Bearbeitung

Tosca 19.02.2021 - 11:34 3256 13
Posts

Tosca

Here to stay
Avatar
Registered: Feb 2002
Location: 1030
Posts: 989
Ich habe häufig mit irgendwelchen strukturierten Textdateien zu tun und muss da im Excel oft kleinere Änderungen machen (Spalten umbenennen/entfernen, Werte runden,...), damit ich das dann in weitere Systeme importieren kann. Ich bekomme da die unterschiedlichsten Sachen und finde das mit Excel in der Praxis recht mühsam, weil man höllisch aufpassen muss, wenn man CSV/Text in Excel bearbeitet, z.B. bei Kommawerten mit Punkt oder Leading 0-Werten.

Jetzt bin ich auf der Suche nach einem Programm, mit dem ich diese CSV Dateien komfortabel bearbeiten kann. Mapforce wäre mir da ins Auge gesprungen - gibt's da Erfahrungen und/oder Alternativvorschläge?

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11890
Excel wuerde ich nicht in die Naehe von wichtigen CSV-Dateien lassen. Das Programm kann bestimmte Dinge besser als seine Alternativen - aber CSV so behandeln, dass man nachher auch noch was damit anfangen kann, erwiesenermaszen absolut nicht. Libreoffice Calc ist dafuer um einiges weniger beschissen.

Ich wuerde an deiner Stelle ein bisschen Python lernen, um das Problemfeld zu beackern.

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2657
kann ich absolut nicht unterschreiben @COLOSSUS. Einfach PowerQuery verwenden und sich freuen ;-)

Tosca

Here to stay
Avatar
Registered: Feb 2002
Location: 1030
Posts: 989
Powerquery ist cool, aber in der Praxis leider auch ein bisschen anfällig, weil man dennoch der Autoerkennung von Excel ausgeliefert ist und den Datentyp manuell anpassen muss.

Das Problem tritt vor allem dann auf, wenn man Dateien mit vielen Spalten hat, bei denen nicht offensichtlich ist, dass zB Leading-0-Werte vorkommen können.

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4248
R oder Python

Tosca

Here to stay
Avatar
Registered: Feb 2002
Location: 1030
Posts: 989
Hier mal ein fiktives Beispiel:

Was ich bekomme:

Code:
+---------------+-------------+-------+-------+---------+---------------+
| Artikelnummer | Bezeichnung | viele | viele | Spalten | Barcode       |
+---------------+-------------+-------+-------+---------+---------------+
| 12345         | Produktname | abc   | def   | ghi     | 0103050501035 |
+---------------+-------------+-------+-------+---------+---------------+

Was ich brauche:
Code:
+-------------+-------------+---------------+
| ordernumber | name        | ean           |
+-------------+-------------+---------------+
| 12345       | Produktname | 0103050501035 |
+-------------+-------------+---------------+

Ein Script darüber laufen zu lassen ist eine gute Idee, aber ich bekomme halt immer wieder unterschiedliche Dateien rein und müsste dann das Mapping jedes mal neu machen - das stelle ich mir mit einer grafischen Oberfläche schon komfortabler vor.

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2657
Zitat aus einem Post von Tosca
Powerquery ist cool, aber in der Praxis leider auch ein bisschen anfällig, weil man dennoch der Autoerkennung von Excel ausgeliefert ist und den Datentyp manuell anpassen muss.

Das Problem tritt vor allem dann auf, wenn man Dateien mit vielen Spalten hat, bei denen nicht offensichtlich ist, dass zB Leading-0-Werte vorkommen können.

Autodetection kannst ausschalten.

Zu deinem Beispiel unten: Perfekt für PQ :D

Code:
src = Csv laden (weiß den Code grad ned auswendig)
Table.SelectColumns(src, "{"Artikelnummer", "Bezeichnung", "Barcode"}")
// damit behält er wirklich nur die 3 Spalten, egal ob nur 3 oder 105192031920 daher kommen
...
Table.RenameColumns....

Wär echt intressant, worans wirklich scheitert, ich hab PQ schon penetriert mit allen möglichen CSVs, drum wunderts mich so.

Tosca

Here to stay
Avatar
Registered: Feb 2002
Location: 1030
Posts: 989
Zitat aus einem Post von murcielago
Autodetection kannst ausschalten.

Wow cool, das löst schon mal 90% meiner Probleme :) Das heißt Autodetection off = alles wird als String behandelt, außer ich definiere Abweichendes bei einzelnen Spalten?

Ich glaube ich gebe Powerquery doch noch mal eine Chance.

Longbow

Here to stay
Avatar
Registered: Feb 2003
Location: Homeoffice
Posts: 5128
Zitat aus einem Post von kleinerChemiker
R oder Python
+1 für python scripterl

--

Alternativ stopfst du die src z.b. in eine Postgres per csv import und ziehst von dem eine materialized view mit den neuen names und fields.

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2657
Zitat aus einem Post von Tosca
Wow cool, das löst schon mal 90% meiner Probleme :) Das heißt Autodetection off = alles wird als String behandelt, außer ich definiere Abweichendes bei einzelnen Spalten?

Ich glaube ich gebe Powerquery doch noch mal eine Chance.

genau, alles ist dann type "any"

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4203
Sowas hab ich früher mal via PowersHell gelöst

CSV einlesen, Codierung check (utf, iso..), einkürzen, auf bestimmte Sonderzeichen prüfen, doppelte Einträge raus....

Leider hab ich das Script nicht mehr :/

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
Mit Python und pandas würde es easy und fix gehen, wenn die Skills vorhanden sind.

sichNix

Here to stay
Registered: Nov 2014
Location: 1230
Posts: 1021
Zitat aus einem Post von othan
Sowas hab ich früher mal via PowersHell gelöst

+1

enjoy

Addicted
Registered: Sep 2000
Location: Tullnerfeld
Posts: 410
Für Kleinigkeiten zum Ändern in csv Dateien verwende ich gerne Visual Studio mit der Erweiterung edit csv
https://github.com/janisdd/vscode-edit-csv
click to enlarge

Nur die Kodierung macht mir dabei Probleme, bin aber wahrscheinlich nur blind beim Suchen nach den entsprechenden Einstellungen.
Da ist Notepad++ wesentlich angenehmer beim Handhaben der Kodierung.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz