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 :-)

Discussion

44 discussions

  • 1

    Up ;=)

    une version Spip 2 prévue ?

    Répondre à ce message

  • Bonjour,

    Est il envisagé de réaliser une version pour SPIP 2 ?
    Où celle-ci est elle supportée ?

    Merci, Max.

    Répondre à ce message

  • Bonjour,
    je trouve ce plugin tres pratique, mais je rencontre un soucis.
    Je souhaite faire évoluer un site statique vers un site SPIP. Ce site comporte enormement de documents sous la forme documents joints.
    Avec ce plugins, j’arrive à remplir facilement un fichier csv pour importer dans la table spip_documents. J’arrive à faire de meme pour la table spip_articles.
    Mon probleme est le suivant : je n’arrive pas à lier les documents aux articles. A priori, il faut que je renseigne la table spip_documents_articles, mais celle-ci n’apparait pas dans le menu administrer les tables.
    Pouvez-vous m’aider ?
    Merci

    Répondre à ce message

  • 2
    PetarouxRay

    bonjour,

    outil excellent pour insérer rapidement des rubriques et des articles basiques dans son site :)
    J’ai rencontré plusieurs soucis cependant quand il s’agit d’ajouter des document.

    1) Dans la partie « Administrez les tables », spip n’affiche pas toutes les tables. C’est le cas de la table ’spip_document_article’ par exemple, qui permet de faire le lien entre un article et ses document.

    2) Quand on choisit d’importer des document donc : on choisit la table spip_documentation, on enregistre et on remplit notre fichier csv avec nos valeur.
    Tous marche tres bien, la table est bien mise a jour.
    Le soucis que j’ai recontré, c’est que ces documents sont liés a l’article en temps qu’images et non en temps que fichiers joint. Donc non affiché sur le site.
    Je cherche actuellement le champ et la table a modifié dans la base de données spip, pour ce problème.

    voila :) excellent outil quand même, bravo.

    Je confirme qu’excel n’est pas le mieux. Il ne propose pas utf-8 a l’importation de fichier csv

    • lbpr23b

      Bravo,
      Très utile.
      Est il possible de faire une automatisation ??

      En effet, mon objectif : récupérer un cvs tous les jours sur un ftp et l’insérer dans ma Base Spip après tri.

    • PetarouxRay

      Encore moi, pour ce qui est du point 2) du premier message :
      ça marche correctement si on spécifie bien dans les champ de la table spip_documents ; la taille (en octets), le mode(document), et dans le champ « fichier » le chemin du fichier sur votre site (en théorie ’IMG/nom de l’extension du fichier/fichier’ ... ex IMG/ZIP/toto.zip)

      voila
      ensuite bien sur il faut remplir la table spip_document_article pour faire le lien.

      donc au final, pour les fichiers joints, il est aussi rapide de le faire a la main sous spip :)

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom