Importation de tableaux au format CSV

tabcsv est un plugin pour SPIP qui permet de transformer du contenu écrit au format CSV (Comma-separated values) en tableau SPIP.

Le plugin fonctionne sur base d’un modèle. Le contenu csv peut être écrit en paramètre du modèle ou contenu dans un fichier au format

Le modèle a été testé sous SPIP 3.1 et 3.2, mais il n’y a pas à priori de raison pour qu’il ne fonctionne pas également sous SPIP 3.0, ou 2.1 et 2.0. Il faut simplement tester. Des retours d’utilisateurs sont les bienvenus.

Ai-je besoin de ce plugin ?

Si vous n’avez pas besoin :

-  de la possibilité de choisir que la première rangée des tableaux puisse être un titre ou non
-  de la possibilité de choisir le séparateur de champ
-  que tous les tableaux générés aient aussi une classe propre aux tableaux tabcsv qui permette de formater ces tableaux-là seulement
-  que chaque tableau généré puisse avoir sa propre classe css, sans affecter les autres tableaux, tabcsv ou SPIP.
-  de pouvoir interpréter du csv écrit (ou copié/collé) directement dans le texte

alors, vous n’avez pas besoin de ce plugin ; utilisez plutôt le modèle emb de SPIP.

Exemples d’utilisation dans un article

Classique
Petit tableau avec contenu csv copié/collé, délimiteur de texte = « rien » (défaut), séparateur de champs = ; (défaut)

<tabcsv|contenu=
Col 1;Col 2
10,11;10,12
10,21;10,22>

Particuliers
Petit tableau avec contenu csv copié/collé contenant doubles et simples quotes, délimiteur de texte = ", séparateur de champs = ;

<tabcsv|delimiteur=oUi
|contenu="L'entrée titre "colonne 1"";"L'entrée titre "colonne 2""
"col11";"col12"
"col21";"col22">

Petit tableau avec contenu csv copié/collé doubles et simples quotes, délimiteur de texte = rien, séparateur de champs = ,

<tabcsv|separateur=,|contenu=
L'entrée titre "colonne 1",L'entrée titre "colonne 2"
col11,col12
col21,col22>

Tableau large (nombre de colonnes) dans un fichier csv d’id XX, avec classe « tableau_large », délimiteur de texte = « rien » (défaut), séparateur de champs = ; (défaut)
<tabcsvXX|classe=tableau_large>

La classe tableau_large permet alors d’intervenir via les CSS pour un meilleur affichage de ce tableau, sans influencer l’affichage des autres tableaux de classe spip.

Règles du format CSV en vigueur dans le modèle

  • Par défaut, il n’y a pas de délimiteur de texte et le séparateur de champs est le ; (point-virgule).
  • Via les paramètres (voir plus loin), on peut redéfinir le délimiteur de texte à " (guillemet double) et le séparateur de champs à ce qu’on veut.
  • Il faut fixer le délimiteur de texte à " (guillemet double) :
    • Si les données du contenu CSV contiennent le caractère du séparateur de champ
    • Si (Attention, particularité du modèle !) les données du contenu CSV contiennent un ou des ’ (guillemets simples) ET que le séparateur de champ est le ; (point-virgule)

Paramètres du modèle

Facultatif
-  titre=non — (non est insensible à la casse) par défaut, la première ligne du CSV est considérée comme les intitulés des colonnes. titre=non impliquera que la première sera considérée comme une rangée normale.
-  delimiteur=oui — (oui est insensible à la casse) déclare que le délimiteur de texte est le " (guillemet double). Par défaut, il n’y a pas de délimiteur de texte.
-  separateur=[1 caractère] — par défaut, le séparateur de champ est le ; (point-vigule). Exemple qui choisira la , (virgule) comme séparateur de champ : separateur=,
-  classe=ma_classe — attribue la classe CSS (Cascading Style Sheets) ma_classe à ce tableau particulier et permet un formatage de style propre à ce tableau

Obligatoire ou facultatif sous condition.
Si l’un des deux paramètres qui suivent est absent, l’autre est obligatoire. Si les deux sont présents, seul le paramètre id sera pris en compte.
-  id=XX ou <tabcsvXX[...]> — où XX est l’id d’un fichier avec l’extension .csv, téléchargé via SPIP (= dans le répertoire IMG/csv/) peu importe que ce fichier soit lié ou non à l’objet (article, par exemple) où l’appel du modèle est inséré
-  contenu=un_contenu_csv_ecrit_directement — le contenu CSV est écrit directement ou copié/collé dans l’objet SPIP

tabcsv, tableau SPIP et feuille de styles

Les tableaux générés par le modèle sont pareils aux tableaux générés par les raccourcis SPIP, aux différences qui suivent près :
-  lorsque le tableau spip contient des | **titres** |, ces titres (TH) contiennent un attribut « id » qui répond à un attribut « headers » dans les cellules (TD) du contenu. Ces attributs « id » et « headers » n’existent pas avec tabcsv
-  une classe tabcsv est présente (en plus de la classe spip) dans tous les tableaux générés
-  le paramètre |classe= permet d’attribuer une classe particulière au tableau concerné
-  le code html et les raccourcis SPIP sont inopérants dans les tableaux générés par le modèle

Démonstration provisoire

Par ici

Astuce pour les tableaux « trop » larges : avec les squelettes par défaut de Spip, une partie du tableau risque bien d’être cachée ! Un div.texte {overflow: auto;} dans les CSS obligera le navigateur à fournir une barre de défilement horizontale si le tableau dépasse la largeur de son conteneur.

Discussion

Aucune discussion

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