Software für Flatfile-Bearbeitung
Tosca 19.02.2021 - 11:34 3546 13
Tosca
Here to stay
|
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
AdministratorGNUltra
|
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
|
kann ich absolut nicht unterschreiben @COLOSSUS. Einfach PowerQuery verwenden und sich freuen ;-)
|
Tosca
Here to stay
|
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
|
R oder Python
|
Tosca
Here to stay
|
Hier mal ein fiktives Beispiel: Was ich bekomme: +---------------+-------------+-------+-------+---------+---------------+
| Artikelnummer | Bezeichnung | viele | viele | Spalten | Barcode |
+---------------+-------------+-------+-------+---------+---------------+
| 12345 | Produktname | abc | def | ghi | 0103050501035 |
+---------------+-------------+-------+-------+---------+---------------+
Was ich brauche: +-------------+-------------+---------------+
| 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
|
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 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
|
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
|
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
|
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
|
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
|
Mit Python und pandas würde es easy und fix gehen, wenn die Skills vorhanden sind.
|
sichNix
Here to stay
|
Sowas hab ich früher mal via PowersHell gelöst +1
|
enjoy
Addicted
|
Für Kleinigkeiten zum Ändern in csv Dateien verwende ich gerne Visual Studio mit der Erweiterung edit csv https://github.com/janisdd/vscode-edit-csvNur 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.
|