Zum Inhalt springen

CSV Datenbank umsortieren


Gast Hoyt
 Teilen

Empfohlene Beiträge

Bei Druckwelle gibts doch einige, die sich mit sowas auskennen sollten.

Also ich habe folgendes Problem: Ich bekomme von einem Großhändler eine CSV Datenbank, in welcher knapp 50.000 Artikel gelistet sind.

Nun würde ich diese Datenbank gerne in meinen bereits bestehenden Gambio Shop importieren um mir somit ne ordentliche Produktpalette oben drauf zu packen.

Nun möchte Gambio natürlich, dass diese CSV Datei anders aussieht und gibt mir beim Import auch nicht die Option, irgendeine Zuordnung durchzuführen.

Fazit: Gambio will die CSV Datei in der exakt richtigen Sortierung, oder garnicht.

Ich möchte nun also die CSV Datei meiner Großhändlers "einfach umsortieren", damit die Datensätze dann so liegen wie es Gambio gerne hätte.

Ja ich weis wie man Google benutzt, aber nein ich habe nicht wirklich das gefunden, was ich brauche.

Ich brauche im Prinzip ein Programm, bei dem ich die Datenbank des Großhändlers einlese und diese dann mit neuer Sortierung abspeichere. Optimal wäre zusätzlich natürlich noch, wenn ich die Art der Umsortierung als Script spreichern kann, damit ich künftig (wegen Preisaktualisierung muss das einmal täglich geschehen) nur noch auf "umsortieren" klicken muss.

Weis jemand von euch welches Programm mir da helfen könnte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

jo excel...

Wenn die sortierung anders ist die trennung des csvs raussuchen und beachten (meist ;-getrennt und mit " als Textidentifizierer in Deutschland), strings sehn entweder so:

"abc";"def";"xyz"

1,1;2,2;34,43

oder so:

abc,def,xyz

1.1,2.2,34,43

aus je nachdem ob US oder DE format

wenns us format ist vorher alles markieren und . durch ß ersetzen, dann in spalten auftrennen und dann alle ß mit , ersetzen sonst macht dir excel aus komma-zahlen ganz schnell nen datum und alles is im ar***

In excel dann mit alt, dann v, dann e (nicht gleichzeitig, sondern nacheinander drücken ^^) das spaltenbildungstool aufrufen (ka wo das im menü is, nutze nur shortcuts)

Dann hast du ne tabelle die sortierst du um wie du sie brauchst und speicherst entweder als XLS oder als CSV ab, beim csv speichern ggf das format dass der importer braucht beachten und fertig.

Ist etwas schwierig das zu erklären ohne daten zu sehn.

Ach ja und @Open office:

Zwar umsonst aber ein krampf das damit zu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  1. Daten einlesen wie oben beschreiben (MS Excel oder OpenOffice Calc)
  2. Makro Aufnahme starten
  3. Spaltenreihenfolge je nach Bedarf neu anordnen
  4. Makroaufnahme stoppen und abspeichern

Beim nächsten mal dann einfach wieder die Daten laden und das Makro ausführen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

geht so wie oben beschrieben, wobei das bei 50K-Datensätze Excel und Co. schon stressen kann. Da ich Excel und Co. zudem immer etwas misstraue, mache ich fast alles über MS Access. Da kann man sich dann die entsprechend definierten Abfragen abspeichern und leicht exportieren. Zudem kann man über Aktualisierungsabfragen den Grund-Datenbestand immer leicht aktualisieren.

Rein aus Interesse, haste mal 10 Musterzeilen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstmal danke für die ziemlich schneller Antworten.

Qualldatei:

Die Datensätze sind per "Pipe" Symbol getrennt und lümmeln sich wenn ich mit Excel öffne alle in Spalte A.

Wenn ich die nun unter "Daten -> sortieren" öffne, nimmt er mir die ganze Bezeichnungsblase auf einmal und akzeptiert diese nicht als einzelnes Datenfeld.

Zieldatei:

Ebenfalls trennung per Pipe Symbol. Feldbezeichnung vollkommen anders.

So ganz erschliesst sich mir die oben beschriebene Umsetzung nicht, muss aber auch gestehen, dass ich bisher mit Datenbanken nicht viel am Hut hatte.

Screenshots von den ersten Zeilen der Quell und der Zieldatei habe ich mal mit dazu gepackt. Wenn sich jemand die Datenbank mal ansehen will schicke ich auch gerne ne CSV, aber die QUelldatenbank hat halt z.B. 56MB

Quelle CSV

post-4105-1458546983602_thumb.jpg

Ziel CSV:

post-4105-14585469836454_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Lade die Daten über Data -> From Text (Daten -> Von Text?) ins Excel. Dann kannst du die richtigen Paramter wie Trennungszeichen auswählen, damit es dann auch mit den Spalten passt.

Beim Speichern wird's standardmäßig etwas schwieriger. Du kannst es zum Beispiel als Unicode TXT (UTF-8, TAB-getrennt) speichern und mit einem Texteditor anschließend alle TABs durch | ersetzten, solange in den Daten keine TABs vorkommen ;)

Vielleicht weiß aber auch jemand, ob man beim speichern aus Excel heraus schon ein anderes Zeichen festlegen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok das mit dem öffnen klappt so.

Dummerweise sind die Preise per " . " statt mit einem Komma getrennt. Werden mir von Excel somit als Datum angezeigt. Wenn ich dann angebe, dass es sich um eine normale Zahl handelt, werden aus 40,75 Euro auf einmal 40.750,00 Euro, weil der Punkt im Exel als 1000er Trennzeichen gewertet wird.

Punkte in der Datenbank einfach durch Komma zu ersetzen funktioniert nicht, weil an anderen Stellen der Datenbank der Punkt durchaus richtig ist (z.B. bei den Bild-url verweisen).

Zudem blicke ich nicht ganz durch wie ich nun wirklich die neue Reihenfolge festlegen kann, sondern finde nur die Möglichkeit, welche Spalte die Sortierreihenfolge vorgibt.

Glaub ich seh vor lauter Wald die Bäume nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wasn das fürn abgefucktes format...

Alle meine importer schreien, dass das mist ist ^^

Access ist hier vermutlich einfacher als excel wie Gobbo schon schreibt, das kommt mit dem vermutlich besser zurecht, zumal einfaches ersetzen hier nicht hilft wegen den vielen unterschiedlichen daten-typen...

Ginge wohl auch mit excel wäre aber ein ziemlicher Murks, das ding zu zerlegen und dann müsste man die definitionen in den spalten per hand aufs zielformat umbennnen and dann mit =wenn abfragen umsortieren. Wohlgemerkt nur wenn mans wirklich so formatiert kriegt wie man will... CSVs für sowas nehmen is eig schon fast unnötig kompliziert, ne datenbank mit ner API die den scheiß umsortiert wär hier vermutlich besser... aber die wollt ich bei dem Daten-wirrwar nicht schreiben. ^^"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist aber eine wirklich dreckige Tabelle .... selten sowas gesehen (und ich bau seit den 90ern Datenbanken aus den lustigsten Quellen zusammen)

Ist viel Handarbeit, selbst Access kotzt bei der unveränderten Datei

Erste Schritte:

  • mit Calk/Excel öffnen
  • befüllte Felder in notepad++ kopieren
  • | durch ; ersetzen
  • hier funzt . durch , ersetzen, um die Preise zu retten (ka ob das generell passt)
  • als txt abspeichern
  • in Excel/Calk " durch Null ersetzen
  • in den textfeldern url-feldern , wieder durch . ersetzen

Aber der Daten-Holocaust ist kaum automatisierbar. MMn kriegste das kaum sauber importiert und hast viel Müll darin. Mit Glück kann das ein findiger Coder mit regulären Ausdrücken zu einer sauberen Datenmenge verzaubern.

Bearbeitet von mad.gobbo
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok da stimmt aber irgendwas nicht.

Ich hab mir son tollen CSV Editor runter geladen. Wenn ich da die gesamte Datenbank öffne dauert es zwar 30Minuten bis diese tatsächlich offen ist (ohne Übertreibung), aber die is dann auch sauber offen.

Wenn ich nun meine 10 Zeilen Datei nehme, kommt da totaler Murks bei raus. Simples kopieren der ersten 10 Zeilen in eine neue excel Datei und das dann als CSV speichern ging also wohl nicht.

Jetzt hab ich aber eine tolle Demo CSV bekommen, bei der das schon sauberer aussieht. Was ich da nun zwar vermisse, sind die Spaltenbezeichnungen in der ersten Zeile, aber vieleicht hilft euch das ja trotzdem weiter.

CSV hier -> http://www.quadpoint-baden.de/csv/demo.rar

Immernoch Dreck, oder brauchbarer ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

viel besser:

hier taugt scheinbar folgendes

  • csv in notepad++ öffnen
  • | durch ; ersetzen
  • " durch Null ersetzen
  • hier funzt . durch , ersetzen, um die Preise zu retten (ka ob das generell passt)
  • als txt abspeichern
  • in excel öffnen
  • in den textfeldern url-feldern , wieder durch . ersetzen

kurz oberflächlich geprüft

ich habe mangels zeit mal nicht umsortiert, aber das ist alles dann eher einfach

demo2.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hui danke das sieht ja schonmal gut aus.

Hab da allerdings natürlich noch Fragen.

1. Warum als txt abspeichern ?

2. Wie danach abspeichern? Excel bietet mir CSV nicht standardmäsig an. Also einfach als XLS speichern und danach in CSV umbennenen ?

3. "Das ist dann alles eher einfach" ...öhm...für Dich vieleicht :D .

Markiert ihr zum umsortieren einfach die ganze Spalte -> Kopieren -> Wechsel in "ziel.csv" -> Einfügen in gewünschter Spalte? Ich vermute jetzt einfach mal, dass ihr das eher nicht macht. Da komme ich dann nämlich zum zweiten Schritt (beim bisher ersten Schritt wusste ich am anfang ja nichtmal, dass er erforderlich ist). Diese Umsortierung muss ich nämlich so einfach/schnell wie möglich durchführen können, da wir zweimal täglich ein Preisupdate der Quelldatenbank bekommen und dieses dann drüber laufen muss. Also zweimal täglich Quelldatenbank wie oben beschrieben in passendes Format bringen -> umsortieren -> in gambio Shop hochladen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  1. einfachstes Dateiformat, ist ne marotte von mir, um fehler zu vermeiden. Kannste theoretisch auch als .csv abspeichern, sollte nix machen
  2. in "datei -> speichern unter" kannste als speicherformat .csv abspeichern.
  3. autsch, wenns 2 mal täglich ist, da würde ich wirklich mal einen Programmierer bemühen, der das scripted. GGf. kann das auch als Macro in notepad++ automatisieren. Muss ja auch nicht komplett sein, sondern inkrementell auf Änderungen prüfen. Ich würde es in anstatt in Excel in Access (das frisst das bequem) importieren, mittels vorbereiteter Abfragen abgleichen und dann wieder umformatiert exportieren (in access kann sehr viel in speicherbaren abfragen formatieren und filtern/anpassen). Muss manuell wieder mit | als Feldtrenner Trennung sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

DRUCKWELLE Global HQ Somewhere in Vanu Territory, 09/23/2013

Hoyt

Irgendwo

INVOICE #224466

Pos. Art.-Nr. Description Quantity Unit price Sum (excl. VAT)

1 0815 DW-IT-Senior Consultant, per hour 4 200 cookies 800 cookies (opt. WoT gold coins)

__________________

TOTAL: 800 cookies

Time of payment: instant (or the Trolls will eat you!)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja die Vorgabe für Gambio Import Datenbanken sieht so aus, wie die zielstruktur.csv .

Programmierer dafür bemühen:

Mach ich gerne. Gibts hier jemanden, der mir ein Script programmieren kann ,welches mir die Datenbank ausliest, und dann in das gewünschte Gambio Format umsortiert?

Soll dann natürlich nicht umsonst sein, könnt da ja grne ne Preisvorstellung mit dazu abgeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja die Vorgabe für Gambio Import Datenbanken sieht so aus, wie die zielstruktur.csv .

Programmierer dafür bemühen:

Mach ich gerne. Gibts hier jemanden, der mir ein Script programmieren kann ,welches mir die Datenbank ausliest, und dann in das gewünschte Gambio Format umsortiert?

Soll dann natürlich nicht umsonst sein, könnt da ja grne ne Preisvorstellung mit dazu abgeben.

Im prinzip sollte es mit jedit gehen, wenn es macros und regex frisst und dann mittels 2-3 aktionen in access um das Format mit pipes hinzubekommen. Wenn sich hier keiner findet, kann ich einen vermitteln, mit dem ich früher online registrationen für großkunden gebaut habe. der macht das immer noch nebenberuflich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie groß ist denn der Umfang?

Wenn ich das richtig verstanden habe, ist das folgende Abfolge:

  • Download des Excel-Datasheets
  • Import des Excelsheets
  • Daten ins richtige Format schubsen
  • Export der Daten

Was ich noch nicht so ganz verstanden habe, wie kommt man an die Daten ran, kann man das irgendwo runterladen (sprich liegt das auf irgend nem (Web)-Server oder ftp)?

Wo müssen die Daten hin?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nicht ganz.

zieh dir mal oben die beiden CSV Dateien.

Im prinzip brauch ich was, wo ich die QUelldatei einlesen kann, und was mir dann die Fertig sortierte CSV im Gambio CSV Format ausspuckt.

AN die Daten kommst Du garnicht ran, sondern das mache ich dann selbst 2mal täglich. Ich brauche im Prinzip das fertige Script, mit dem ich das dann hier bei mir lokal so unkompliziert wie möglich durchführen kann.

Der pure Luxus wäre natürlich ein mini Programm, bei dem ich die Qualldatenbank angeben kann und welches mir dann die fertig umsortierte CSV ausspuckt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um mit Deinem Konto zu schreiben.

Guest
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Vorschau
 Teilen

×
×
  • Neu erstellen...

Wichtige Information

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.