SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 130 visiteurs en ce moment

Accueil du site > Administration et BDD > Import-Export > CSV Import > Utilisation du plugin CSV_IMPORT

Utilisation du plugin CSV_IMPORT

31 mai 2008 – par Paulbe – 50 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

20 votes

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

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

JPEG - 29.6 ko

L’exemple pris ici est l’importation d’article, 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 »

JPEG - 20.8 ko

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

JPEG - 22.9 ko

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

JPEG - 101.4 ko

Puisque nous parlons d’article 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.

JPEG - 63.4 ko

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

JPEG - 3.2 ko

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.

JPEG - 41.5 ko

Cliquez sur la droite « Télécharger ». Une nouvelle fenêtre s’ouvre.

JPEG - 8.2 ko

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.

JPEG - 80.5 ko

Vous devez obtenir quelque chose de similaire.

JPEG - 14.3 ko

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 ».

JPEG - 8.2 ko

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.

JPEG - 35.1 ko

Vous arriverez alors sur un autre écran.

JPEG - 54.1 ko

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 ».

JPEG - 41.5 ko

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

JPEG - 56.7 ko

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.

JPEG - 78.9 ko

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 »

JPEG - 14.6 ko

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

Retour en haut de la page

Vos commentaires

  • Le 1er février à 10:26, par Teenoo En réponse à : Utilisation du plugin CSV_IMPORT

    Bonjour,

    impossible pour moi d’ajouter mes données à la table j’obtiens sans cesse ce message d’erreur en cliquant sur « ajouter les données » :

    Fatal error : Call to undefined function bouton_block_invisible() in C :\wamp\www\FFRS\plugins\csv_import_2_0\exec\csvimport_import.php on line 204

    Quoi faire ?

    • Le 1er février à 11:13, par Teenoo En réponse à : Utilisation du plugin CSV_IMPORT

      Réponse :

      Passage de la 0.2.1 à la 0.2.2 sauf qu’à présent nouvelle erreur : Ligne 1 :: Ajout impossible ! :: Array ( [id_article] => .....

    Répondre à ce message

  • Le 29 mars 2010 à 18:34, par Francky En réponse à : Utilisation du plugin CSV_IMPORT

    Bonjour,

    J’ai un problème avec les caractères accentués.
    J’exporte ma base en csv classique avec des virgules. Je la récupère avec Open Office version 3.2.0.

    Si la plupart des caractères accentués sont bien interprété lorsque j’indique le format UTF-8 à Open office
    quelques caractères comme les (à, oe, û, ù, oe) et d’autres que j’oublie très certainement ne sont pas reconnus.
    J’ai des carrés à la place.

    Je pensais que le utf-8 réglait tous ces problèmes mais....

    Voilà, hormis ce soucis, ce plugin me sauve la vie !!!!
    Un grand merci

    (spip version 2.0.9 --- Version plugin : 0.2 [36128])

    • Le 28 avril 2010 à 14:01, par ? En réponse à : Utilisation du plugin CSV_IMPORT

      Je reviens sur mon message du 29 mars pour certains caractères accentués.
      A priori le soucis venait de easy php et non pas du plug ni de spip.
      Désolé si je vous ai fais perdre du temps et encore merci pour cette joli contrib !

      Francky

    • Le 16 juillet 2010 à 13:03, par Fabienne En réponse à : Utilisation du plugin CSV_IMPORT

      Bonjour,

      Je rencontre également un souci du même type, mais uniquement avec les apostrophes qui sont systématiquement précédé d’un \ après importation.

      Mon EasyPHP est paramétré correctement à priori.

      Seul le remplacement de ces apostrophes par leur unicode permet un affichage correct, mais celui-ci reste malheureusement en toutes lettres dans les champs de mes articles.

      Avec mes remerciements pour votre attention.
      Fabienne

    • Le 30 août 2011 à 15:27, par frbos En réponse à : Utilisation du plugin CSV_IMPORT

      Bonjour
      Le sujet date un peu mais j’ai moi aussi le soucis avec les apostrophes.
      Quelqu’un à trouvé une solution à ce problème ?

    • Le 30 août 2011 à 15:59, par fcy En réponse à : Utilisation du plugin CSV_IMPORT

      En fait j’ai contourné le problème en passant par du csv généré par open office (bizarrement j’avais moins de soucis qu’avec excel) et en passant directement par PhpMyAdmin.

    • Le 30 août 2011 à 16:32, par frbos En réponse à : Utilisation du plugin CSV_IMPORT

      J’utilise déja openoffice
      Par contre, ton idée est bonne, je vais faire ca directement dans phpmyadmin...

      Merci pour ta reponse

    • Le 1er décembre 2011 à 16:50, par linuxien masqué En réponse à : Utilisation du plugin CSV_IMPORT

      Bonjour,

      Pour les apostrophes, voir la réponse que je viens de faire à jacangers

      Le Linuxien masqué

    Répondre à ce message

  • Le 27 septembre 2011 à 14:39, par jeromelt En réponse à : Utilisation du plugin CSV_IMPORT

    j’ai un problème à l’import d’articles.
    Je respecte toutes les consignes mais immanquablement mes apostrophes ’ sont remplacées par un signe \

    corriger cela à la main quand on importe des centaines d’articles est fastidieux, une consigne ?

    merci

    Répondre à ce message

  • Le 24 octobre 2011 à 15:05, par jacangers En réponse à : Utilisation du plugin CSV_IMPORT

    bonjour

    ce plug in est vraiment génial. Par contre j’ai moi aussi un probleme avec le caractère d’échappement ; qui insere systématiquement \ quand il trouve une apostrophe ou un guillement dans mes texte.

    par exemple je me retrouve avec

    d\’eau au lieu de d’eau

    comment faire ?

    • Le 1er décembre 2011 à 16:47, par linuxien masqué En réponse à : Utilisation du plugin CSV_IMPORT

      Bonjour,

      J’ai modifié le plugin pour éviter d’avoir des anti-slash devant les apostrophes, le plugin est pas dispo sur le svn de spip, sinon cela m’aurais donné l’occasion de demander mes identifiants sur spip-zone ( après avoir demandé à l’auteur s’il trouvait pertinent ces modifications ).

      Vers la fin du fichier ligne inc\csvimport.php ligne 567

                      foreach($data as $key=>$ligne)
                      {
                              $count_lignes ++;
                             
                              $check = array_flip($tablefield);

                              $champs = "";
                              $valeurs = "";

                              foreach($check as $key=>$value){
                                      $kc = csvimport_nettoie_key($key);
                                      if ( (isset($assoc[$kc])) && (isset($ligne[$assoc[$kc]])) )
                                      {
                                              $champs .= $assoc[$kc].',';
                                              $valeurs .= '"'.$ligne[$assoc[$kc]].'",';
                                              unset($check[$key]);
                                      }
                               } // (FIN foreach)
                             
                              if ( (isset($stamp)) && isset($check[$stamp]) ){
                                      $what[$stamp] = date('Y-m-d H:i:s');
                              }
                              // Suppression virgule finale
                              $champs = substr($champs, 0, -1);
                              $valeurs = substr($valeurs, 0, -1);

                              if (!empty($valeurs) && !empty($champs))
                              {
                                      $id_primary= sql_insert($table, "($champs)", "($valeurs)" );
                     
                                      // SI id = 0 (Erreur d'insertion) ...
                                      if ($id_primary==0) {
                                              $apercu = couper(print_r($valeurs,true), 150, ' ...'); // Petit aperçu de la valeur (150 caractères)
                                              $erreur[$count_lignes][] = "Ajout impossible ! :: $apercu ";       
                                      }
                                             
                              } else {
                                      $erreur[$count_lignes][] = "Rien &agrave; ajouter ! ";
                              }
                             
                      }// (FIN foreach)

      Si vous testez avec ce nouveau code, merci de faire un retour ici.

      Le Linuxien masqué

    Répondre à ce message

  • Le 4 octobre 2011 à 21:12, par fabien En réponse à : Utilisation du plugin CSV_IMPORT

    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 ...

    Répondre à ce message

  • Le 16 septembre 2011 à 15:44, par jeromelt En réponse à : Utilisation du plugin CSV_IMPORT

    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

    Répondre à ce message

  • Le 14 septembre 2011 à 16:09, par jeromelt En réponse à : Utilisation du plugin CSV_IMPORT

    Jointures,

    si dans spip 2.1.x.... on active les jointure dans options.php, comment fait on ensuite pour s’en servir ?

    je voudrais ajouter aux articles que je veux ajouter par ce biais des mots clés ainsi qu’un auteur

    le fait d’ajouter cette instruction dans mes options ne change rien à l’interface

    merci

    Répondre à ce message

  • Le 9 août 2011 à 14:10, par mirobolus En réponse à : Utilisation du plugin CSV_IMPORT

    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 !!

    Répondre à ce message

  • Le 2 juin 2011 à 16:27, par ubik En réponse à : Utilisation du plugin CSV_IMPORT

    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 !

    • Le 8 juin 2011 à 13:25, par Ubik En réponse à : Utilisation du plugin CSV_IMPORT

      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 !

    Répondre à ce message

  • Le 20 avril 2011 à 09:16, par dut En réponse à : Utilisation du plugin CSV_IMPORT

    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é.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Brownygreen

    3 février – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Un thème simple de couleur marron et vert, en largeur fixe, constitué de 2 colonnes avec une en-tête facilement personnalisable. Présentation Adaptation de Versatility par E-cosystems. Si vous utilisez le plugin Menus, une navigation principale (...)

  • Corbeille

    2 novembre 2008 – 27 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un plugin pour retrouver les éléments supprimés dans la corbeille.

  • Formulaire de contact libre

    27 avril 2011 – 35 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Typographie avancée

    3 mars 2010 – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    « Typographie avancée » active automatiquement un grand nombre d’automatismes destinés à affiner la typographie des textes produits par SPIP. Nécessite PHP 5 au minimum. « Typographie avancée » est l’adaptation, pour SPIP, de la classe « PHP Typography », (...)

  • Plugin Convertisseur

    24 février 2008 – 15 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Convertit différents formats d’articles (wiki, docx, pdf, etc..). en format SPIP (texte avec les raccourcis typographiques SPIP)