Utilisation du plugin CSV_IMPORT

Comment devenir fainéant intelligemment ou comment importer un fichier CSV dans spip sans tout casser ?

Ce plugin va vous permettre d’importer et d’exporter les données de vos tables SPIP.

Après avoir longtemps cherché cette fonction c’est encore une fois IRC channel #spip qui est venu à mon secours, que je remercie en préambule => cy_altern, et sans qui je serais nul part ;-)

Avertissement : Ces explications se veulent les plus précises possibles, mais l’auteur ne saurait être tenu pour responsable en cas de mauvaise manipulation qui pourrait entrainer une perte des données de la base. Ayez dans tous les cas un dump sous la main, au cas où...

Matériel nécessaire

SPIP 1.9.2 avec les plugins

  • cfg : moteur de configuration, version : 1.7.5
  • CSVImport, version : 0.1

SPIP 2.0.0
A partir de SPIP 2.0, CSV Import requiert le plugin SPIP Bonux

-  Un fichier CSV ou autre fichier tabulaire avec les données à ajouter.

-  OpenOffice.org Calc.

Note : j’avais commencé avec Excel mais certaines fonctions n’existant pas ou ne sachant pas les utiliser..., je me suis rabattu sur OpenOffice.org Calc.

Note 2: dans la version pour SPIP 2, si l’on souhaite gérer aussi les tables des jointures (spip_auteurs_articles par ex), ajouter la ligne suivante dans le fichier mes_options.php du site:
$GLOBALS['csvimport_tables_jointures'] = true;

Installation et configuration du plugin

Après avoir récupéré le zip de CSV Import (http://files.spip.org/spip-zone/csv...), suivez la procédure standard d’installation / activation (cf la documentation officielle pour plus de détails).

L’exemple pris ici est l’importation d’articles, honnêtement je n’ai pas tout testé mais je suppose que le restant fonctionne également.

Rendez-vous sur l’icone “Edition”, sous menu “Import CSV”

Vous arrivez sur la page suivante, qui est presque vide d’ailleurs !

Cliquez sur “Administrez les tables”, une nouvelle page s’ouvre ayant cette allure-ci.

Puisque nous parlons d’articles ici et pour la bonne compréhension du tutoriel, je vous demande de cocher toutes les cases de la table “articles”, comme ceci. Si vous êtes intéressé par d’autres tables ou champs, la démarche devrait être la même il me semble.

Après avoir tout coché, il faut valider votre choix avec le bouton “Enregistrer” qui se trouve dans le bas de la page.

A ce stade un grand pas est déjà fait, mais courage nous ne sommes pas au bout de nos peines mais le jeu en vaut la chandelle...
Retournons sur “Import CSV”, nous avons à présent quelque chose de similaire. Les chiffres, dates et heures seront différents naturellement.

Pour continuer, nous allons exporter la structure cible d’ARTICLES en CSV pour choisir les champs d’importation.
Cliquez sur la droite “Télécharger”. Une nouvelle fenêtre s’ouvre.

Choisissez votre format et enregistrez le fichier sur votre disque dur.

Préparation du CSV

Lancez OpenOffice.org Calc

Cliquez sur “Fichier”, “Ouvrir”
Rendez-vous dans le dossier où vous avez sauvé le fichier précédemment.

Lors de l’ouverture il vous demande quelques précisions. Ici on renseignera le type de séparateur, ci-dessus j’avais choisi la virgule, pas de raison d’en changer, il reste à choisir le format du texte UTF-8 en l’occurrence.

Vous devez obtenir quelque chose de similaire.

Analysez bien la structure de votre tableau, c’est lui qui révèlera la forme et les champs à compléter. Il vous reste à compléter ou remplacer les colonnes, les lignes et les cellules afin de préparer le meilleur fichier CSV pour votre spip.

Importation des données dans le CSV

Ça y est vous avez vu à quoi ressemble une table Spip, il vous reste à “copier/coller” les données que vous voulez ajouter dans la table “articles”.

Ici pour l’exemple, le surtitre est le titre de l’article en anglais: le titre est le titre de l’article avec un numéro d’ordre, et le sous-titre est le titre de l’article en néerlandais, mais tout est possible.

Remarques :
-  Vous avez intérêt à remplir un maximum de champs, attention néanmoins à respecter les formats initiaux, ainsi que les automatismes d’incrémentations et autres.
-  Ce qui est à éviter absolument c’est d’indiquer des références qui n’existent pas... par exemple rubrique 4 alors qu’elle n’existe pas ou pas encore...
-  Il est naturellement possible de pousser le vice encore plus loin, avec par exemple pour classer vos titres d’articles par num_titre, de concaténer par exemple : =CONCATENER(A7;“.”;D7) dans votre tableur préféré pour obtenir un champ 01. Mon premier titre. Je laisse à votre imagination le moyen de devenir encore plus fainéant que moi à l’aide de toutes les fonctions disponibles dans votre tableur.

Exportation des données

Voici votre fichier CSV bien complété et prêt à être exporté à son tour.

Dans OpenOffice.org Calc, cliquez sur “Fichier”, “Enregistrer sous” et choisissez Type “.CSV” et cochez la case “éditez les paramètres de filtre” et précisez l’endroit de sauvegarde.

Vous arriverez alors sur un autre écran.

Encore une fois, choisissez bien les différentes options, ici en l’occurrence, Jeux de caractère : “UTF-8”, séparateur “,”. ET validez sur “OK”.

Votre fichier a été créé et est stocké sur votre disque dur.

Importation dans SPIP

Rendez-vous dans votre spip.
Retournons sur “Import CSV”.

Cliquez sur la gauche ici “spip-articles”. Une nouvelle fenêtre s’ouvre.

Indiquez où se trouve votre fichier CSV. Cliquez sur “valider”

Importation des données

A ce stade vous êtes prêt à importer mais l’importation n’a pas encore eu lieu.
Vous devez avoir un écran similaire.

Dans cette page vous pouvez encore préciser plusieurs choses, faire correspondre des champs, ... en principe votre fichier était bien préparé donc pas de raison de modifier quoi que ce soit !
Il vous reste à choisir “Ajouter” ou “Remplacer la table”

Et hop, chez moi cela a “encodé” 250 articles d’une carte d’un restaurant chinois, avec les numéros et les traductions en 3 langues sans parler des termes techniques.

J’ai “nem” plus peur d’entrer des données tabulaires dans spip :-)

updated on 2 October 2019

Discussion

44 discussions

  • merci pour votre plugin

    Note 2 : dans la version pour SPIP 2, si l’on souhaite gérer aussi les tables des jointures (spip_auteurs_articles par ex), ajouter la ligne suivante dans le fichier mes_options.php du site : $GLOBALS[’csvimport_tables_jointures’] = true;

    c’est toujours valable dans spip 2.0.10

    j’ai pas trouvé le fichiers mes_options.php

    je suis nul ...

    Reply to this message

  • Bug à signalé sur les dates

    j’ai d’abord exportés toutes les données de la table article en utilisant le plugin, puis j’ai fais des modif, et j’ai remplacé les données.

    alors que les dates n’ont pas été modifiées sur le CSV elles sont devenues complétement farfelues dans la base

    j’ai des création d’articles dans les années 2030 etc

    Reply to this message

  • Une petite question : quelle différence y a t-il exactement entre l’action d’Ajouter ou de Remplacer la table ? Parce que j’ai l’impression que l’ajout ne s’occupe pas de vérifier si les entrées existent déjà et je me retrouve avec des doublons. J’ai adapté ce plugin à une utilisation un peu particulière : la gestion d’un stock de 15000 pièces (avec l’ajout d’une table supplémentaire). En faisant mes tests, je me suis retrouvée avec une table de 52000 entrées !
    Merci d’avance pour votre éclairage. Et bravo pour ce plugin !!

    Reply to this message

  • 1

    J’ai un problème avec le plugin sous spip 2.1.10

    Lorsque je tente d’importer le csv dans spip-articles en faisant “ajouter à la table”, le message suivant s’affiche : 3::0:Correspondances CSV-Table incomplètes et les articles ne sont pas créés.

    J’ai essayé avec un fichier csv de 2 lignes et j’ai le même message ...

    Merci de votre aide !

    • Problème résolu, je n’avais pas bien compris le principe. Les informations de mon csv ne correspondaient pas au format attendu par la BD (pour la date).

      Super outil !

    Reply to this message

  • Je rencontre une difficulté à l’installation du plugin sur un spip 2.1.0
    Fatal error: Call to undefined function test_plugin_actif() in .../plugins/csv_import_2_0/csvimport_boutons.php on line 25

    à l’examen du code, Il semble que le test

    1.  AND  (!test_plugin_actif('bando'))

    soit fautif car il génére l’erreur en l’absence du bandeau. Je l’ai donc supprimé et réussi à installé.

    Reply to this message

  • Remarque utile: si certains champs contiennent les caractères

    ; ou "

    , l’export CVT via excel ne se fait pas correctement. Du coup le plugin intègre des éléments erronés. Une astuce consiste à utiliser le site de conversion de fichier http://www.zamzar.com qui lui travaille correctement.

    Voir aussi référence http://www.commentcamarche.net/faq/...

    Reply to this message

  • 2

    En 2.0.10, quand j’essaie d’importer des articles, j’ai le message d’erreur suivant:

    Fatal error: Call to undefined function bouton_block_invisible() in plugins/auto/csv_import_2_0/exec/csvimport_import.php on line 204

    Reply to this message

  • Bonjour,

    Je viens d’installer le plugin (site sous SPIP 2.1.2 sans rien de plus).
    Première tentative d’ajout de rubriques :
    Des rubriques sans titre sont créées et sont inaccessibles !

    Deuxième tentative :
    Les warnings ci dessous !

    Depuis la situation se répète, même en vidant le cache et désactivant / réactivant le plugin.

    Une idée pour me permettre de trouver l’erreur que j’ai faite ?
    Merci d’avance.

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 342
    
    Warning: Invalid argument supplied for foreach() in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 343
    
    Warning: array_flip() [function.array-flip]: The argument should be an array in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 346
    
    Warning: array_keys() [function.array-keys]: The first argument should be an array in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 370
    
    Warning: Invalid argument supplied for foreach() in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 370
    
    Warning: array_keys() [function.array-keys]: The first argument should be an array in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 380
    
    Warning: Invalid argument supplied for foreach() in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 380
    
    Warning: array_keys() [function.array-keys]: The first argument should be an array in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 390
    
    Warning: Invalid argument supplied for foreach() in /homepages/16/d218686833/htdocs/plugins/csv_import_2_0/inc/csvimport.php on line 393

    Reply to this message

  • 3

    Le plugin ne marche-t-il qu’avec une 1.9.2.d ou est-ce que ca peut fonctionner avec une 1.9.2.a ou 1.9.2.c ?

    quel serait le problème ? différence de champs et de tables ?

    • Olivier G

      j’ai oublié de mettre mes coordonnées

    • François Daniel Giezendanner

      Bonjour,

      Est-il prévu d’adapter ce plugin pour SPIP 2.1

      Cordialement

      FDG

    • Bonjour,

      Je constate avec joie aujourd’hui que ce plugin est adapté pour SPIP 2.1 depuis le 26 novembre 2010 à 16h00.

      Grand merci à Cedric MORIN et à Paulbe et bonne continuation !

      Cordialement

      FDG

    Reply to this message

  • 2
    François Daniel Giezendanner

    Bonjour,

    Ce plugin est impressionnant et ouvre des perspective très intéressantes, merci à Paulbe pour cette très belle et importante contribution.

    J’ai fait un rapide et très simple essai décrit ici :

    Dès lors il me paraît indispensable à SPIP.

    Commente est envisagé son adaptation à SPIP 2.1.x ?

    Cordialement

    FDG

    • Hello,
      Je ne suis que le rédacteur de la doc !

      Rendons à César ce qui appartient à César ;-)

      Amitié
      Paulbe

    • François Daniel Giezendanner

      Désolé,

      J’ai lu trop vite en diagonale.

      En effet, le fichier XML indique que l’auteur est Cedric MORIN, voilà César réhabilité à juste titre !

      Amitié
      FDG

      plugin CSVImport : Description via le fichier XML

      Import / Export de fichiers CSV pour les tables SPIP.

      Ce plugin permet à l’administrateur de définir les tables pour lesquelles import et/ou export sont autorisés : Ce peut être les tables SPIP ou n’importe quelle autre table de la base.

      Les tables autorisées pour l’import/export qui ne sont pas des tables de spip sont déclarées dynamiquement afin d’être sauvegardées automatiquement par le plugin Super_Dump.

      Auteur : Cedric MORIN notre-ville.net
      © 2006-2009 - Licence GPL
      URL : http://www.spip-contrib.net/Utilisation-du-plugin-CSV_IMPORT
      Version : 0.2 [40407] — stable
      Répertoire : csv_import_2_0

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom