Créer de grands tableaux dans SPIP

Méthode pour aider à l’ecriture de longs tableaux dans SPIP

Ce tutoriel décrit une méthode pour automatiser la mise en place des séparateur de champs (pipe| ou ") des tableaux de SPIP

La question des grands tableaux dans SPIP

Transcrire dans SPIP des tableaux issus d’un traitement de texte ou d’un tableur et comportant de nombreuses colonnes et/ou rangées relève parfois du cauchemar !

En effet, dans SPIP les séparateurs des champs (les cellules ou les cases d’un tableau) sont codés par un | (« Pipe », caractère spécial obtenu en pressant simultanément 2 touches : touche "alt gr"et la touche 6) .

Un tableau « complexe »
  • A gauche, le tableau un traitement de textes .
  • A droite, le même, codé en spip, ouvert dans le bloc notes

Pour faciliter la tâche, 2 solutions sont possibles :
-  utiliser la barre typographique
-  ajouter le code manuellement

1.1- Utiliser le bouton tableau de la barre du plugin Barre Typo V2

Ce bouton ouvre une fenêtre comportant un tableau à compléter manuellement ou par copier-coller.

La barre de raccourcis typographiques et la fenêtre « tableau » à compléter
Avec ce tableau à compléter les codes de champs sont placés automatiquement... mais il faut autant de copier coller que de cases dans le tableau !

Ainsi, le tableau donné en exemple ci-dessus comporte 3 colonnes sur 25 lignes (environ), soit 75 cellules . Cela oblige dans ce premier cas à 75 copier + 75 coller !!!

1.2- Ajouter le code manuellement

Ceci directement dans un traitement de textes ou dans le bloc-notes. Il faut alors placer un signe « | »…entre les valeurs des cellules et - en plus - au début et à la fin de chaque ligne du tableau.

Ce qui revient à insérer 4 x 25 signes « pipes » donc 100 opérations ; ce qui est tout de même plus rapide que la méthode précédente !!!

2- Une méthode pour insérer automatiquement les caractères spéciaux.

2.1- Dans votre traitement de textes :

Vous sélectionnez et copiez ( ctrl+c) votre tableau

2.2- Utiliser le tableur. ( Excel ou Oo Calc)

  • Ouvrez le tableur
  • Collez le tableau ( ctrl+v) : chaque « valeur » est copiée dans une cellule de la feuille de calcul.
Le tableau copié dans Excel
remarquer en haut pour les cellules du titre que les 2 premières lignes sont fusionnées.
  • Vérifier que des cellules ne sont pas fusionnées . L’exemple précédent montre que la rangée du titre est constituée des cellules fusionnées des lignes 1 et 2 . Pour supprimer cette « fusion », dans Excel, décocher l’option du menu « format > alignement ».
Le menu « format > alignement »
repérer en bas la case à décocher pour supprimer la fusion des cellules

Le contenu de la seconde ligne pourra soit être ajouté à la première ligne soit mis en « notes de bas de page » ou toute autre solution aboutissant à une bonne compréhension des données !
Pour simplifier dans cet exemple on supprime (provisoirement) l’expression « 0,1M ».

  • Insérez une colonne à gauche de votre tableau et une à droite.
  • Sur la première ligne, placez un X (ou une autre lettre) dans chacune des 2 cellules situées de part et d’autre des titres (soit ici A1 et E1) .
Insertion de colonnes de part et d’autre du tableau.
  • par sécurité, effectuez la même opération sur la dernière ligne du tableau.

Ces "X" ou autres lettres ajoutées permettent lors de l’opération suivante – enregistrement au format CSV – de placer des séparateurs de champs en début et fin de ligne.

  • Enregistrez le fichier au format .CSV (au lieu de xls etc...)
    dans ce format, par défaut, les séparateurs des champs sont des " ;" point virgule.
  • Dans cet exemple, on a enregistré sous « tampon4.csv », puis on ferme le logiciel de calcul.

2.3- Utiliser le bloc note

  • Ouvrez votre fichier « xxx. Csv »
    Pour voir les fichiers .csv. , dans la fenêtre « ouvrir » prenez soin , dans le cadre « fichier de type » de sélectionner « tous les fichiers » au lieu de.txt (extension du type "fichier texte" qui est affiché par défaut)
ouverture d’un fichier CSV dans le bloc-notes

Le fichier ouvert dans le bloc note montre les points virgules séparant les champs et les X au début et en fin de la première ligne (titres des colonnes) et sur la dernière ligne du tableau.

le fichier .CSV ouvert dans le bloc-notes
les codes séparateurs de champ sont des points virgules
  • Il faut alors supprimer les 4 X qui n’ont aucun autre intérêt que de permettre la création de « fausses » colonnes et de faire placer les « ; » séparateurs de champ en début et fin de ligne !
  • Dans le menu édition > remplacer,
    complétez le champ rechercher par « ; » et remplacer par « | » puis cliquez sur « remplacer tout » ….
menu « edition>remplacer »
permet de remplacer les «  ; » par des « | » .

on obtient :

codage du tableau dans SPIP
les « points virgules » sont remplacés par des « pipes »
  • Il est alors possible à ce stade [1] d’ajouter les codes d’enrichissement typographique pour le titre ; à savoir 2 accolades de part et d’autre de chacun des champs de la première ligne , pour afficher les titres de colonnes en gras.
Enrichissement typographique de la ligne des titre
la double accolade encadrant chaque mot entraîne un affichage des mots en gras.

Une fois le code complété …

  • sélectionnez et copiez le tout (vous êtes dans le bloc-notes)

2.4- Fin du travail dans SPIP

-  Cliquer sur le bouton « modifier l’article » comme pour saisir du texte
-  Placez votre curseur à l’endroit qui doit recevoir le tableau
-  Collez le code du tableau dans SPIP et enregistrez.
Vous obtenez ceci :

L’aperçu du tableau dans SPIP

C’est un peu long à expliquer, mais infiniment plus rapide à mettre en œuvre… et dans le cas de tableau de plus de 20 ou 25 cellules il n’y a pas à hésiter !

Notes

[1Si vous le préférez, il est également possible de le faire ultérieurement dans SPIP

Discussion

4 discussions

  • 4
    Committo, Ergo Sum

    Le problème est réel, mais je pense qu’avec les modèles on devrait pouvoir développer une interface plus simple :

    1. joindre à l’article visé une pièce jointe au format CSV (Comma Separated Value), c’est-à-dire le tableau sous format textuel avec des points-virgules comme séparateurs de colonnes.

    2. dans le corps de l’article utiliser la syntaxe des modèles, par exemple <csvXXX> où XXX est le numéro du document.

    Par ailleurs, une fois pour toutes, écrire un modèle csv.html qui se réduit à appliquer sur la pièce jointe un filtre nommé disons csv2spiptab. Ce filtre consisterait à prendre le contenu du fichier, y remplacer les «  ; » par des « | » puis à appliquer la fonction traiter_raccourcis.

    Gros avantage : si le fichier original est mis à jour, il suffit de remplacer la pièce jointe pour mettre aussi à jour le site. Si c’est une pièce distante, il n’y aurait même rien à faire.

    • Bon bah voilà c’était même encore plus simple car le modèle EMB faisait déjà une partie du travail, il a juste suffit de l’étendre. Voir http://trac.rezo.net/trac/spip/changeset/10948

    • juste pour faciliter la lecture, je met copie de ce commit 10948 ici

      http://trac.rezo.net/trac/spip/chan...

      Changeset 10948
      Date : 12.12.2007 11:23:17
      Auteur : esj at rezo.net
      Message : Extension du modèle emb.

      http://www.spip-contrib.net/Creer-de-grands-tableaux-dans-SPIP,24 remarque qu’il est malcommode de transformer en article SPIP un texte issu d’un tableur. En conséquence, le modèle emb voit son domaine étendu. Le squelette se réduit à présent à inclure un autre squelette, portant le nom du type MIME principal du document, officiellement au nombre de 5 pour les types simples : application, audio, image, video, text. Pour les quatre premiers, le squelette fait la même chose que la version précédente du squelette emb, mais leur écriture en est simplifiée (et pourrait certainement l’être encore plus) ;

      Pour le type text, le comportement de emb est à présent d’insérer le contenu du document dans la zone de texte où est utilisé ce modèle (auparant il ne faisait rien). Il suffit donc, pour faire apparaitre le contenu d’un tel fichier (txt, html etc) dans le corps d’un article, d’écrire <embNNN|> où NNN est son id_document. De plus, ce squelette applique, s’il existe, le filtre filtre_text_sous_type sur le contenu en question. En particulier, est fourni le filtre filtre_text_csv qui transforme les «  ; » en « | », et permet ainsi de visualiser sous forme d’une table HTML mise en page par SPIP, le contenu d’un fichier fourni par un tableur au format CSV.

      A noter que sont donc implicitement fournis les modèles application, audio, image, video, text dont l’usage direct est un peu plus rapide que emb.

      Prospectives :
      -  on pourrait convenir dans le squelette standard qu’un article sans texte mais muni d’un pièce jointe de type text utilise ce modèle ;
      -  il faudrait fusionner les fonctions charger_fonction, filtrer, chercher_filtre et appliquer_filtre qui font presque la même chose.

    • Committo, Ergo Sum

      Le message ci-dessus étant un peu illisible (il y a des chevrons mal interprétés) et déjà un peu daté, voici le message final posté sur spip-core :

      Le modèle « emb », qui permet d’incruster le contenu d’une pièce jointe
      dans le corps d’un article, est à présent étendu à la plupart des
      types MIME, complèté au besoin par un pré-traitement spécifique.
      En particulier, lorsque ce modèle concerne une pièce jointe de type
      MIME « csv’ (Comma Separated Values) fournie par un tableur, SPIP
      remplace automatiquement ses » ;" par les balises html TD et connexes,
      ce qui lui permet d’afficher le contenu de cette pièce jointe de
      manière similaire à celle du tableur. Pour les autres documents de
      type Text, ils apparaissent sous une balise PRE, et les chevrons sont
      transcodés pour éviter d’être interprétés comme du HTML. Pour les
      documents audio et video, ils apparaissent avec des controleurs en
      permettant le défilement.

      Si la piece jointe porte le numéro NNN, il suffit donc d’écrire
      <embNNN|> dans le corps de l’article pour obtenir le résultat.
      Le message ci-dessus étant peu lisible (car il contient des chevrons mal interprétés) et déjà un peu daté, voici le message envoyé sur spip-core plus récemment :

      De plus, si le corps de l’article est vide, et qu’il ne possède qu’un
      seule pièce jointe (les images ne comptant pas), cette incrustation
      est réalisée automatiquement, sans même qu’il soit besoin d’écrire
      dans le corps de l’article.

      Voir :

      http://trac.rezo.net/trac/spip/changeset/10948

      http://trac.rezo.net/trac/spip/changeset/10950

      http://trac.rezo.net/trac/spip/changeset/10951

      http://trac.rezo.net/trac/spip/changeset/10955

    • Il y a eu encore des améliorations autour de ce filtre (SVN11111, SVN11113), et la
      documentation
      en a été rédigée.
      Merci à ceux intéressés par cette problématique de tester la dernière SVN avec des fichiers issus de leur tableur (ils diffèrent énormément) et de relire cette documentation.

      A signaler (voir l’article cité) que cette inscrustation a été aussi réalisée pour les documents HTML, autre moyen d’insérer des tableaux, mais cette fois avec des styles de mises en page personnels, ce que ne permet pas CSV.

    Répondre à ce message

  • 3

    une extension pour Openoffice, CalctoDocuwiki permet de bénéficier dans le module tableur Calc d’un bouton pour transformer un tableau ou une sélection de cellules au format Docuwiki directement copiable dans un article Spip

    • Euh ! oui cela à l’air très bien...
      Mais , je n’ai réussi à le faire fonctionner ni avec OOo portable, ni avec une version récente installée (2.3 ) pour la circonstance !
      Qui peut dire ce qu’il faut faire ???

    • Bonjour,

      Initialement, j’ai développé l’extension Calc2Dokuwiki (avec un « k » dans « Doku ») pour créer des tableaux dans Calc et les exporter facilement dans DokuWiki, je ne pensais pas que ça fonctionnerait aussi pour Spip ! N’hésitez pas à me faire des retours pour me dire si le formatage des cellules est bien respecté (je croyais que Dokuwiki et Spip avaient des règles de formatage différentes).

      Je m’aperçois que j’ai un peu négligé la documentation francophone, exusez-moi. Voilà quelques indications complémentaires :

      1. si vous avez installé OOo 2.1.x et >, vous pouvez lancer l’installation de l’extension en double-cliquant sur calc2dokuwiki.oxt après l’avoir téléchargée ;

      2. si vous avez installé une version 2.0.x ou une version portable d’OOo 2.x, il vous faudra installer l’extension par le Gestionnaire des extensions :

      2. 1. il est disponible dans le menu Outils/Gestionnaire des extensions... -> la fenêtre du gestionnaire s’ouvre

      2. 2. sélectionnez Mes extensions et cliquez sur le bouton [Ajouter...] -> un explorateur de fichiers s’ouvre

      2. 3. utilisez-le pour aller chercher votre copie locale du fichier calc2dokuwiki.oxt

      3. si vous utilisez OOo 1.x, passez à OOo 2.x (bin oui, sinon à quoi ça sert que la communauté continue de développer et d’améliorer ce logiciel ?!? ;) ) ou alors :

      3. 1. téléchargez la version macro : calc2dokuwiki.bas et installez-la dans une bibliothèque que vous appellerez Calc2Dokuwiki par exemple ;)

      3. 2. téléchargez la petite icône kivabien

      3. 3. ajoutez un bouton à l’interface graphique de Calc par le menu Personnaliser... de la barre d’outils (c’est matérialisé par un petit triangle noir pointant vers le bas). Associez à l’icône la procédure Calc2Dokuwiki_Main

      NOTE : si jamais l’icône de Calc2Dokuwiki (cf screenshot) n’apparaît pas dans l’interface de Calc, activez-la dans le menu Affichage/Barre d’outils/Calc2Dokuwiki.

      Voilà, je ne suis pas sûr que c’était l’endroit pour faire un message aussi long, mais un utilisateur m’a demandé de le diffuser ici ! :)

      Sympathicamicalement, Luc
      — 

      Site personnel : http://www.lucsorel.com/

    • Ma version 2.3 de OOo Calc avait dans un premier temps détecté le fichier .oxt et avait chargé « elle même » l’extension ! Le bouton était bien là mais non fonctionnel !

      J’ai recommencé en suivant pas à pas la procédure décrite par l’auteur ..
      Moralité : rien ne sert de courir....

      Voilà une appli excellente ! quel gain de temps et d’energie !
      MERCI !

    Répondre à ce message

  • 3

    il y a plus simple : spip-edit
    le lien a l’air mort

    ou la macro word vers spip

    je dis cela car j’ai déjà testé cette méthode auprès d’utilisateurs, il y a trop d’outils en jeu

    • le lien c’est spipedit.com (sans « - » ) mais l’url renvoit vers le webmail associé au domaine. Manifestement ce site a finis de vivre :/

      (dommage, c’est avec leur squelette que j’avais pondu mon premier site :P )

      Par contre le programme semble encore dispo ici : http://www.atoute.org/n/article77.html et je confirme, l’auteur originel a décidé selon cet article, d’arrêter le developpement du soft

      Par contre, cette macro word2spip m’intéresse beaucoup en ce moment mais je n’arrive pas à remettre la main dessus. As tu un line STP ???

    • Julesbourvil

      Spip-edit est tout à fait bien pour des petits et moyens tableaux. Si vous cherchez à transformer un tableau comprenant un certain nombre de lignes (+ ou - 30) il se perd et vous n’obtenez plus rien.

      Sauf bien sûr à créer manuellement le tableau dans Spip-edit.

    • c’est dans spip-contrib ici

    Répondre à ce message

  • Bonjour, dès mes débuts avec SPIP, j’avais cherché une méthode pour récupérer les tableaux de Word ou d’excel ; voici celle-ci qui est dans la même lignée, mais plus rapide et qui fonctionne avec OOo :

    • Pour un tableau final de 2 colonnes, créez un tableau dans Word avec 4 colonnes, remplissez les colonnes 2 et 3
    • placer votre curseur dans le tableau, puis menu tableau ->sélectionner tableau
    • menu Tableau, convertir -> Tableau en texte, puis séparer le texte en choisissant Autres avec le caractère | (Altgr 6)
      Il vous reste juste un copier de Word vers Spip.
      Cordialement.

    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