Wie man csv Listen in Drupal 7 mit Feeds importiert

Submitted by sschulz on Di, 01/29/2013 - 16:02

Ein Klassiker in Drupal ist das importieren von Daten aus CSV Listen. Oftmals haben Kunden
irgendwelche Excel Listen die importiert werden sollen.
Mit Drupal kann man das recht simpel via Feeds lösen. Anbei findet ihr eine kurze Anleitung wie man das macht.

In diesem Beispiel importieren wir eine CSV Liste die Domain Namen enthält als NODES.
Man könnte natürlich auch Taxnonmien anlegen, das ist in diesem Fall aber nicht gewünscht.

<strong>Vorbereitung für dieses Tutorial<strong>
Du hast eine CSV Liste die du imporitieren willst, als UTF-8 gespeichert

<em>Du brauchst folgendes Modul:</em>
<a href="http://drupal.org/project/feeds">drupal.org/project/feeds</a>
Aktiviere die Feeds UI und Feeds

<strong>Inhaltstyp anlegen</strong>

Lege einen neuen Inhaltstyp Namens "Domain" an, mit den Feldern die auch in deiner CSV sind. 

<code>admin/structure/types/add</code>

In meinen Fall sind in der CSV Liste folgende Felder:
(Das ist eine Domain Liste mit Handles und so)

<code>Domain;Ownerc;Adminc;Techc;Zonec;Created;Payable;Primary Nameserver;Secondary Nameserver;Registry status;Owner;DNSSEC;</code>

Die lege ich mir also alle brav als Fields an, je nach dem was es ist als Zahl oder Text oder Datum usw.
Benenne die Felder genauso wie die in der CSV Liste, dann ist das Mapping (Zuordnung) später einfacher!

<strong>Feed Importer erstellen</strong>

Lege einen neuen Feed importer an

<code>admin/structure/feeds</code>

<ul>
<li>1) Vergebe einen Namen</li>
<li>2) Basic Settings so lassen</li>
<li>3) Abrufer -> Change -> auf File Upload ändern</li>
<li>4) Parser -> Change -> CSV Parser auswählen</li>
<li>5) CSV Parser -> Einstellungen -> default delimiter auf dein Trennzeichen aus der CSV ändern, in diesem Fall ein ;
No Header checkbox leer lassen</li>
<li>6) Processor so lassen (Node Processor)</li>
<li>7) Node Processor -> Einstellungen -> Inhaltstyp -> Dort deinen neuen Inhaltstyp "Domain" nehmen</li>
<li>8) Mapping -> 
    Source -> Domain -> Target -> Title (unique)
    Source -> Ownerc -> Target -> Ownerc
    usw.
bis alle Felder gemappt sind</li>
<li>Speichern! </li>
</ul>
So hier sind wir fertig

<strong>Daten importieren:</strong>

Dann gehen wir auf 
<code>/import</code>

und nehmen unseren neuen Feed Importer, wählen die CSV Liste aus und starten das ganze!
und siehe da: 

<strong>Die CSV wird importiert!</strong>

Zur Ausgabe kannst du später dann das Modul Views benutzen (werde ich jetzt nicht weiter drauf eingehen, das wird überall schon genug erklärt)
<a href="http://drupal.org/project/views">drupal.org/project/views</a>