Annonce

La nouvelle version du forum est arrivée, merci infiniment à Opitux, Bohwaz et aux beta-testeurs.
Découvrez les nouveautés et faites vos commentaires ici.

#1 06-10-2014 13:52:22

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Tableaux dans le forum

Salut les MUL,

Le forum permet maintenant la saisie directe de tableaux simples cool .

Voici quelques exemples d'utilisation. Il faut savoir que la barre verticale | se tape avec AltGr + 6 sur les claviers PC, et Alt + Maj + L sur les claviers Mac.

Saisie directe

Un tableau à deux colonnes, avec la première colonne alignée à gauche (l) et la deuxième colonne alignée à droite (r), ce qui donne le paramètre "lr".

[rltable=lr]
Matos
tente      |  560
sac        |   230
sardines  |  56
[/rltable]

Matos
tente560
sac230
sardines56

Les espaces sont libres, vous pouvez en mettre autant que vous souhaitez pour clarifier la saisie de votre tableau.

Le tableau peut comporter autant de colonnes que nécessaire. Voici par exemple un tableau à trois colonnes, alignement gauche (l) droite (r) centre (c), d'où le paramètre "lrc".

[rltable=lrc]
Matos
tente       |  560  |  ok
sac        |   230  | à acheter
sardines  |  56  | ok
[/rltable]

Matos
tente560ok
sac230à acheter
sardines56ok


Par ailleurs, on peut séparer les sections en laissant une ligne vide dans le tableau.

[rltable=lr]
Matos
tente       |  560
sac        |   230
sardines  |  56

Nourriture
soupe  |  65
biscuits  |  150
[/rltable]

Matos
tente560
sac230
sardines56
 
Nourriture
soupe65
biscuits150

Pour mettre en valeur une ligne entière de tableau, commencez-la par le caractère ^ (AltGr + 9 sur clavier PC).

[rltable=lr]
^ Matos | Poids
tente      |  560
sac        |   230
sardines  |  56
^ Total  | 846
[/rltable]

MatosPoids
tente560
sac230
sardines56
Total846


Utilisation de l'outil tableau de la barre

La barre d'outils propose une fenêtre d'aide à l'inclusion de tableau. Cliquez sur le bouton tableau bouton tableau, puis indiquez le paramètre d'alignement et le contenu du tableau comme indiqué ci-dessus.

Import de données depuis un tableur

Vous pouvez importer rapidement vos données depuis votre tableur ainsi :
* sélectionnez un rectangle de données dans le tableur
* copiez
* ouvrez l'outil tableau de la barre d'outil  bouton tableau
* collez dans la zone de contenu
* cliquez sur le bouton Conversion TAB → | : votre tableau est converti au format RL.
* renseignez le paramètre d'alignement
* Validez



Et voila, c'est tout ce qu'il faut savoir. On avait dit que c'était simple !
À vous de jouer  smile

Dernière modification par kstt (15-10-2014 14:06:03)


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#2 06-10-2014 13:55:57

miniping
Où ça un sommet?
Lieu : Rhône Alpes
Inscription : 18-07-2012
Messages : 1 077

Re : Tableaux dans le forum

ça avec les exports en csv depuis excel, ça va envoyer!

Hors ligne

#3 06-10-2014 16:39:42

Phil67
Nouveau membre
Lieu : Tres Tabernae
Inscription : 04-10-2011
Messages : 5 204

Re : Tableaux dans le forum

Excellent ! cool

Astuce au passage pour récupérer un tableau exploitable chez soi :
   - sélectionner le texte du tableau RL
   - copier
   - lancer son tableur favori (p.ex. LibreOffice ou Excel)
   - menu Édition > Collage spécial > coller comme texte non formaté

(Un copié / collé direct est inexploitable car il provoque un décalage d'une cellule supplémentaire à chaque ligne.)


Le contenu de ce message ne reflète pas nécessairement le point de vue de son auteur. wink

Hors ligne

#4 06-10-2014 19:51:36

zeb'
Membre
Lieu : Elsass
Inscription : 22-08-2014
Messages : 52

Re : Tableaux dans le forum

je suis aussi preneur pour savoir comment faire l'inverse!  big_smile

Hors ligne

#5 06-10-2014 20:16:03

faydc
... aussi
Lieu : Bordeaux (33)
Inscription : 27-07-2006
Messages : 1 050
Site Web

Re : Tableaux dans le forum

Joli boulot!

Hors ligne

#6 06-10-2014 20:37:42

ventcalme
Membre
Lieu : Bzh
Inscription : 29-10-2011
Messages : 1 550

Re : Tableaux dans le forum

cool

Hors ligne

#7 06-10-2014 20:41:09

Phil67
Nouveau membre
Lieu : Tres Tabernae
Inscription : 04-10-2011
Messages : 5 204

Re : Tableaux dans le forum

zeb' a écrit :

je suis aussi preneur pour savoir comment faire l'inverse!  big_smile

Pas compliqué.


1ère possibilité :
   - depuis le tableur : Enregistrer sous...
   - choisir le format Texte CSV avec un séparateur de champ (point-virgule par défaut) différent du séparateur décimal
   - ouvrir le fichier CSV avec un éditeur de texte
   - rechercher et remplacer toutes les occurrences du séparateur de champ (point-virgule par défaut) par une barre verticale
   - sélectionner les lignes / copier / coller sur RL en rajoutant manuellement les 2 balises


2ème possibilité qui fonctionne partout sans export intermédiaire (même une feuille de calcul Google) :
   - créer une nouvelle colonne en dernière position
   - y affecter une formule contenant la concaténation des colonnes précédentes séparées à chaque fois par une barre (*)
   - sélectionner la colonne / copier / coller sur RL en rajoutant manuellement les 2 balises

(*)
P.ex. avec 3 colonnes existantes (A,B,C) : rajouter une colonne D
En D1 entrer la formule : = A1 & "|" & B1 & "|" & C1
Sélectionner D1 et copier la cellule sur toute la colonne ou l'étendre à la souris via le coin inférieur droit de la cellule.

Dernière modification par Phil67 (06-10-2014 20:41:29)


Le contenu de ce message ne reflète pas nécessairement le point de vue de son auteur. wink

Hors ligne

#8 06-10-2014 20:50:28

zeb'
Membre
Lieu : Elsass
Inscription : 22-08-2014
Messages : 52

Re : Tableaux dans le forum

merci!  wink

Hors ligne

#9 06-10-2014 20:52:05

Vegas
Breathe
Lieu : Absurde.be
Inscription : 14-04-2009
Messages : 1 532
Site Web

Re : Tableaux dans le forum

Extra, merci beaucoup!

Le code ressemble  à s'y méprendre à Tex ou LaTex  wink

V


Z

Hors ligne

#10 06-10-2014 21:04:50

SpySNL
N°8
Lieu : Plus près des Vosges
Inscription : 07-06-2006
Messages : 5 843

Re : Tableaux dans le forum

Super boulot, bravo !

Hors ligne

#11 08-10-2014 16:40:47

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

C'est génial.

A l'occasion, faudrait que je vois s'il y a un module perl qui gère les formats MS/ooolibreoffice/gnumeric/etc, histoire de pouvoir convertir un fichier tableur et le formater avec la syntaxe du forum via un petit script/app.

Juste deux remarques insignifiantes:

Il faut savoir que la barre verticale | se tape avec AltGr + 6 sur les claviers PC, et Alt + Maj + L sur les claviers Mac.

->

Il faut savoir que la barre verticale | se tape avec AltGr + 6 sous Windows ou Linux, et Alt + Maj + L sur les claviers Mac.

(Histoire de clarifier.)

Et aussi, si jamais vous avez du temps à perdre, ça pourrait être sympa de pouvoir trier les colonnes des tableaux aussi.

Dernière modification par Kam (08-10-2014 16:42:03)

Hors ligne

#12 08-10-2014 18:23:42

Opitux
Jeune padawan
Lieu : 06
Inscription : 13-01-2013
Messages : 5 128

Re : Tableaux dans le forum

Pour info, il existe 2 plugins vraiment top sur dokuwiki que j'utilise sur toutes mes installations :

sortablejs qui permet de trier un tableau par colonne
searchtablejs qui ajoute un champ de recherche à un tableau et permet de filtrer les lignes en fonction de la recherche (vraiment pratique)

Un 3e pas mal également :
Table Width qui permet d'imposer des largeur de colonne. Les 3 peuvent être utilisés conjointement et sont vraiment intéressant...

Peut-être peuvent-il être adapté à fluxBB ??
Ce serait bien de les installer dans le wiki également, mais la version installée est pê trop ancienne...

HS
Il serait pratique d'installer aussi un plugin qui permet de renseigner des tags dans les pages du Wiki et permets ainsi une navigation transversale (faudra que je retrouve le lien)
Et tant que j'y suis, il existe aussi un outils de gestion de ticket : Issuetracker. Si cela peut être utile...
/HS


Plus je marche moins fort, moins j'avance plus vite...

Si vous me contactez pour l'association, mieux vaut passer directement par wink

Hors ligne

#13 15-10-2014 10:09:27

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Salut,

quelques nouveautés documentées dans le premier post :

* outil tableau dans la barre d'outils
* import de données depuis un tableur
* mise en valeur d'une ligne de tableau


Le tri du tableau est probablement envisageable, merci pour la suggestion smile

EDIT : et merci à tous pour les encouragements  big_smile

Dernière modification par kstt (15-10-2014 10:15:55)


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#14 17-10-2014 16:21:14

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Pour illustrer l'utilisation  smile

Exemple de tableau : https://www.randonner-leger.org/forum/v … 70#p371870

[rltable=rl]
^ 1240 | 1. PORTAGE / ABRI
400   |  Sac à dos  BERGHAUS HYPER 22
800   |  * Tarp D4, sardines
40     |  1/2 couverture de survie

^ 900 | 2. COUCHAGE
405     |  Matelas NEMO ZOR 20R Regular
495     |  Quilt CUMULUS 250

^ 933 | 3. THERMIQUES
40     |  bonnet HAGLOFS micropolaire
40     |  buff RAIDLIGHT
150     |  couche 1 ODLO ML
188     |  * couche 2 D4 Forclaz 20
280     |  couche 3 VERTICAL imper-respi
200     |  collant ODLO WARM
35     |  chaussette WOOLPOWER 200

^ 155 | 4. CUISINE
12     |  réchaud ESBIT titane
68     |  popote MSR Titan kettle 400 mL
9     |  cuillère LIGHT MY FIRE Spork recoupée
11     |  briquet BIC mini
52     |  * bouteilles plastique 1L  x2
3     |  pasilles AQUATABS

^ 70  | 5. HYGIENE
20     |  papier toilette
10     |  morceau savon d'Alep
10     |  brosse à dent recoupée
30     |  lingettes

^ 3298     |  TOTAL GENERAL
[/rltable]

* en cours de changement

12401. PORTAGE / ABRI
400Sac à dos  BERGHAUS HYPER 22
800* Tarp D4, sardines
401/2 couverture de survie
 
9002. COUCHAGE
405Matelas NEMO ZOR 20R Regular
495Quilt CUMULUS 250
 
9333. THERMIQUES
40bonnet HAGLOFS micropolaire
40buff RAIDLIGHT
150couche 1 ODLO ML
188* couche 2 D4 Forclaz 20
280couche 3 VERTICAL imper-respi
200collant ODLO WARM
35chaussette WOOLPOWER 200
 
1554. CUISINE
12réchaud ESBIT titane
68popote MSR Titan kettle 400 mL
9cuillère LIGHT MY FIRE Spork recoupée
11briquet BIC mini
52* bouteilles plastique 1L  x2
3pasilles AQUATABS
 
705. HYGIENE
20papier toilette
10morceau savon d'Alep
10brosse à dent recoupée
30lingettes
 
3298TOTAL GENERAL

* en cours de changement

Dernière modification par kstt (17-10-2014 16:23:59)


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#15 17-10-2014 16:28:36

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Encore un exemple, inspiré du voyage de JJondalar en Islande : https://www.randonner-leger.org/forum/v … 42#p371842

[rltable=lr]
Sac à dos
Terra Nova Voyager 45  | ?
Mousse dorsale remplacée par une plus épaisse que celle d'origine | ?
^ Sous-total | 630 g

Couchage
Tente Big Agnes Fly Creek 2 Platinum (sardines d'origine remplacées par des titane) | 950 g
Tapis de sol Polycree | 70 g 
Sac de couchage Triple Zero Ansabère 400. | 780 g 
Matelas NeoAir M + housse + nécessaire réparation (10 g) | 390 g 
^ Sous-total | 2200 g

Cuisine
Brûleur MSR superfly allumage Piezo + housse | 155 g 
Pare-vent feuille d'alu (fait maison) | 28 g 
Bouteille gaz Coleman 500 (achetée sur place) | 600 g 
Popote Evernew 400 (dont couvercle alu 8 g) | 58 g 
Opinel n° 6 allégé | 26 g 
Cuillère en titane Vargo | 9 g 
Morceau d'éponge avec côté grattant | 4 g 
^ Sous-total | 880 g

...
[/rltable]

Sac à dos
Terra Nova Voyager 45?
Mousse dorsale remplacée par une plus épaisse que celle d'origine?
Sous-total630 g
 
Couchage
Tente Big Agnes Fly Creek 2 Platinum (sardines d'origine remplacées par des titane)950 g
Tapis de sol Polycree70 g
Sac de couchage Triple Zero Ansabère 400.780 g
Matelas NeoAir M + housse + nécessaire réparation (10 g)390 g
Sous-total2200 g
 
Cuisine
Brûleur MSR superfly allumage Piezo + housse155 g
Pare-vent feuille d'alu (fait maison)28 g
Bouteille gaz Coleman 500 (achetée sur place)600 g
Popote Evernew 400 (dont couvercle alu 8 g)58 g
Opinel n° 6 allégé26 g
Cuillère en titane Vargo9 g
Morceau d'éponge avec côté grattant4 g
Sous-total880 g
 
...


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#16 17-10-2014 17:33:54

philip
achemeneu !
Lieu : Nice
Inscription : 25-05-2010
Messages : 965
Site Web

Re : Tableaux dans le forum

Super et merci kstt pour ces illustrations  smile

C'est tout de suite plus parlant pour moi !  cool


Moins j'en porte, mieux je me porte !

Hors ligne

#17 24-10-2014 13:42:24

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Tableau d'origine : https://www.randonner-leger.org/forum/v … 81#p372581

PORTAGE:  807 g
725Sac à dos Cilao IZI33
52Étui à lunettes
30Sac poubelle 30L
 
BIVOUAC:  1,86 kg
960Sac de couchage Triple Zéro Petit Astazou 600 FL
230Matelas Thermarest Ridge Rest Solite 100cm
69Tapis de sol polycree
1Boules quiès
465Tarp DIY 2,5x3
130Piquets Quechua alu
 
VÊTEMENTS:  1,48 kg
60Chaussettes Quechua
165Polaire Quechua Forclaz 20
645Doudoune Highrock
152Caleçon long Wedze simple warm pant
35Gants polaires Adidas
50Bonnet polaire DIY
36Buff
332Veste Goretex Arcteryx Beta SL
 
CUISINE ET HYDRATATION: 294 g
36Poche à eau Platypus bottle 2L
30Bouteille de lait Marguerite
48Réchaud à gaz Fire Maple FMS-116T
170Popote Campingaz 2x50cL
10Cuiller Spork
 
OUTILS:  145 g
47Opinel No 8
76Frontale Petzl Tikka XP2 + piles
12Briquet Mini Bic
10Sifflet
 
ELECTRONIQUE:  690 g
170Téléphone
520Appareil photo Olympus OM-D E-M10
 
MATÉRIEL:  2,69 kg
614Piolet long Charlet Moser
938Crampons Black Diamond Serac clip (loués, donc poids fabriquant)
328Casque Petzl Elios
440Baudrier Petzl Adjama
57Mousqueton vis Petzl Attache
180Gants Simond Alpinism
135Guêtres Dynastar
 
HYGIÈNE:  57 g
40PQ
14Dentifrice
3Brosse à dents
 
CONSOMMABLES:  203 g
203Cartouche gaz 100g Primus
 
AUTRES:  113 g
42Lunettes de glacier Cebe
40Papiers + argent France
31Clé voiture

[rltable=rl]
PORTAGE:  807 g
725  |  Sac à dos Cilao IZI33
52  |  Étui à lunettes
30  |  Sac poubelle 30L

BIVOUAC:  1,86 kg
960  |  Sac de couchage Triple Zéro Petit Astazou 600 FL
230  |  Matelas Thermarest Ridge Rest Solite 100cm
69  |  Tapis de sol polycree
1  |  Boules quiès
465  |  Tarp DIY 2,5x3
130  |  Piquets Quechua alu

VÊTEMENTS:  1,48 kg
60  |  Chaussettes Quechua
165  |  Polaire Quechua Forclaz 20 
645  |  Doudoune Highrock 
152  |  Caleçon long Wedze simple warm pant
35  |  Gants polaires Adidas
50  |  Bonnet polaire DIY
36  |  Buff
332  |  Veste Goretex Arcteryx Beta SL

CUISINE ET HYDRATATION: 294 g
36  |  Poche à eau Platypus bottle 2L
30  |  Bouteille de lait Marguerite
48  |  Réchaud à gaz Fire Maple FMS-116T
170  |  Popote Campingaz 2x50cL
10  |  Cuiller Spork

OUTILS:  145 g
47  |  Opinel No 8
76  |  Frontale Petzl Tikka XP2 + piles
12  |  Briquet Mini Bic
10  |  Sifflet

ELECTRONIQUE:  690 g
170  |  Téléphone
520  |  Appareil photo Olympus OM-D E-M10

MATÉRIEL:  2,69 kg
614  |  Piolet long Charlet Moser
938  |  Crampons Black Diamond Serac clip (loués, donc poids fabriquant)
328  |  Casque Petzl Elios
440  |  Baudrier Petzl Adjama
57  |  Mousqueton vis Petzl Attache
180  |  Gants Simond Alpinism
135  |  Guêtres Dynastar

HYGIÈNE:  57 g
40  |  PQ
14  |  Dentifrice
3  |  Brosse à dents

CONSOMMABLES:  203 g
203  |  Cartouche gaz 100g Primus

AUTRES:  113 g
42  |  Lunettes de glacier Cebe
40  |  Papiers + argent France
31  |  Clé voiture
[/rltable]

Dernière modification par kstt (24-10-2014 13:43:13)


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#18 24-10-2014 15:05:04

SpySNL
N°8
Lieu : Plus près des Vosges
Inscription : 07-06-2006
Messages : 5 843

Re : Tableaux dans le forum

C'est classe smile

Hors ligne

#19 24-10-2014 16:59:09

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

Alors... Pour ceux qui sont sous Linux, je viens de faire un petit script en bash pour générer automatiquement des tableaux pour RL à partir d'une feuille de calcul.

Pour l'utiliser, c'est tout simple. Créez un fichier quelque part, et copiez-y le code ci-dessous:

#!/bin/bash

# Version 1.5

################################################################################################
######################################## Configuration #########################################
################################################################################################

# Alignement des colonnes de nombres (valeurs: c,r,l pour: center, right, left)
numalign="r"
# Alignement des colonnes de chaînes de caractères (valeurs: c,r,l pour: center, right, left)
stringalign="l"
# Icône dans le menu système et le menu contextuel
icon="gnumeric"
# Désactiver l'alignement automatique?
# Utile pour les vieilles machines afin de ne pas les faire surchauffer.
# Laissez tel quel si vous n'avez pas de problèmes de performances, sinon, passez la valeur à 1.
disalign=0

################################################################################################
################################################################################################
################################################################################################

output="$HOME/.spreadsheetconvert"
output2="$HOME/.spreadsheetconvert2"
path=$(dirname "$0")
if [[ "$1" == "--install" ]]; then
	installdest="$HOME/.spreadsheet2table.sh"
	echo "Installation du script..."
	echo "Récupération de la liste des paquets installés..."
	pssconvert=$( dpkg -l | grep "gnumeric" )
	if [[ "$pssconvert" != "" ]]; then
		echo -e "ssconvert \033[32m[OK]\033[0m"
	else
		echo -e "ssconvert \033[31m[Fail]\033[0m"
		fail="${fail}gnumeric "
	fi
	pxclip=$( dpkg -l | grep "xclip" )
	if [[ "$pxclip" != "" ]]; then
		echo -e "xclip \033[32m[OK]\033[0m"
	else
		echo -e "xclip \033[31m[Fail]\033[0m"
		fail="${fail}xclip "
	fi
	pzenity=$( dpkg -l | grep "zenity" )
	if [[ "$pzenity" != "" ]]; then
		echo -e "zenity \033[32m[OK]\033[0m"
	else
		echo -e "zenity \033[31m[Fail]\033[0m"
		fail="${fail}zenity "
	fi

	pnotify=$( dpkg -l | grep "libnotify" )
	if [[ "$pnotify" != "" ]]; then
		echo -e "libnotify \033[32m[OK]\033[0m"
	else
		echo -e "libnotify \033[31m[Fail]\033[0m"
		echo -e "\033[31m[Erreur]\033[0m Aucun gestionnaire de notification installé. Veuillez en installer un, tel que notify-osd."
		fail="${fail}notify-osd "
	fi
	if [[ "$fail" != "" ]]; then
		echo -e "\033[31m[Erreur]\033[0m Veuillez installer les paquets suivants avant de continuer: ${fail}"
		exit
	fi

	pnemo=$( dpkg -l | grep "nemo" )
	pdolphin=$( dpkg -l | grep "dolphin" )
	pnautilus=$( dpkg -l | grep "nautilus" )
	if [[ "$pnautilus" != "" ]]; then
		pnautilusactions=$( dpkg -l | grep "nautilus-actions" )
		if [[ "$pnautilusactions" == "" ]]; then
			echo -e "\033[31m[Erreur]\033[0m Nautilus a été détecté, mais nautilus-actions n'est pas installé. Veuillez installer ce paquet avant de continuer afin de pouvoir intégrer le script au menu contextuel."
			exit
		fi
	fi
	pthunar=$( dpkg -l | grep "thunar" )

	echo "Copie du script dans $HOME..."
	cp "${path}/spreadsheet2table.sh" "$installdest"
	chmod +x "$installdest"

	echo "Création d'une entrée dans le menu..."
	menuentry="$HOME/.local/share/applications/spreadsheet2table.desktop"
	touch "$menuentry"
	echo "[Desktop Entry]" > "$menuentry"
	echo "Version=1.0" >> "$menuentry"
	echo "Type=Application" >> "$menuentry"
	echo "Name=Conversion de feuille de calcul" >> "$menuentry"
	echo "Comment=Convertir une feuille de calcul pour Randonner Léger" >> "$menuentry"
	echo "Icon=gnumeric" >> "$menuentry"
	echo "Exec=$installdest --select" >> "$menuentry"
	echo "NoDisplay=false" >> "$menuentry"
	echo "Categories=Utility;" >> "$menuentry"
	echo "StartupNotify=true" >> "$menuentry"
	echo "Terminal=false" >> "$menuentry"
	
	if [[ "$pnemo" != "" ]]; then
		echo "Intégration du script dans nemo..."
		nemodir="$HOME/.local/share/nemo/actions"
		if [ ! -d "$nemodir" ]; then
			mkdir "$nemodir"
		fi
		touch "${nemodir}/spreadsheet2table.nemo_action"
		echo "[Nemo Action]" > "${nemodir}/spreadsheet2table.nemo_action"
		echo "Active=true" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Name=Convertir pour Randonner-Léger" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Comment=Convertir pour Randonner-Léger" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Exec=$installdest %U" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Icon-Name=gnumeric" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Selection=s" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "Extensions=gnumeric;gsheet;xlsb;xlsm;xls;ods;numbers;xl;xlsx;gnm;" >> "${nemodir}/spreadsheet2table.nemo_action"
		echo "EscapeSpaces=true" >> "${nemodir}/spreadsheet2table.nemo_action"
	fi

	if [[ "$pthunar" != "" ]]; then
		echo "Intégration du script dans thunar..."
		thunarfile="$HOME/.config/Thunar/uca.xml"
		if [ ! -f "$thunarfile" ]; then
			touch "$thunarfile"
			echo "<?xml encoding=\"UTF-8\" version=\"1.0\"?>" > "$thunarfile"
			echo "<actions>" >> "$thunarfile"
			echo "</actions>" >> "$thunarfile"
		fi
		chk=$( grep "Convertir pour Randonner Léger" "$thunarfile" )
		if [[ "$chk" == "" ]]; then
			sed -i 's/\<\/actions\>.*//g' "$thunarfile"
			echo "<action>" >> "$thunarfile"
			echo "	<icon>gnumeric</icon>" >> "$thunarfile"
			echo "	<name>Convertir pour Randonner Léger</name>" >> "$thunarfile"
			echo "	<unique-id>$RANDOM$RANDOM$RANDOM-1</unique-id>" >> "$thunarfile"
			echo "	<command>$installdest %f</command>" >> "$thunarfile"
			echo "	<description>Convertir pour Randonner Léger</description>" >> "$thunarfile"
			echo "	<patterns>*.gnumeric;*.gsheet;*.xlsb;*.xlsm;*.xls;*.ods;*.numbers;*.xl;*.xlsx;*.gnm</patterns>" >> "$thunarfile"
			echo "	<other-files/>" >> "$thunarfile"
			echo "	<text-files/>" >> "$thunarfile"
			echo "</action>" >> "$thunarfile"
			echo "</actions>" >> "$thunarfile"
		fi
	fi

	if [[ "$pnautilus" != "" ]]; then
		echo "Intégration du script dans nautilus..."
		# Barbare, mais bon...
		if [ ! -f "$HOME/.spreadsheet2table-nautilus" ]; then
			touch "$HOME/.spreadsheet2table-nautilus"
			nautilus-actions-new --desktop -l "Convertir pour Randonner Léger" -t "Convertir pour Randonner Léger" -i "gnumeric" -x "$installdest" -p "%f" -b "*.gnumeric" -b "*.gsheet" -b "*.xlsb" -b "*.xlsm" -b "*.xls" -b "*.ods" -b "*.numbers" -b "*.xl" -b "*.xlsx" -b "*.gnm"
		fi
	fi

	if [[ "$pdolphin" != "" ]]; then
		echo "Intégration du script dans dolphin..."
		kdedir="$HOME/.kde/share/kde4/services/ServiceMenus"
		if [ ! -d "$kdedir" ]; then
			mkdir "$kdedir"
		fi
		kdefile="$kdedir/spreadsheetconvert.desktop"
		touch "$kdefile"
		echo "[Desktop Entry]" > "$kdefile"
		echo "Type=Service" >> "$kdefile"
		echo "ServiceTypes=KonqPopupMenu/Plugin" >> "$kdefile"
		echo "MimeType=application/x-gnumeric;application/*kspread*;application/*excel*;application/*spreadsheet*;" >> "$kdefile"
		echo "Actions=spreadsheetconvert;" >> "$kdefile"
		echo "[Desktop Action spreadsheetconvert]" >> "$kdefile"
		echo "Name=Convertir pour Randonner-Léger" >> "$kdefile"
		echo "Icon=gnumeric" >> "$kdefile"
		echo "Exec=$installdest \"%F\"" >> "$kdefile"
	fi

	echo "Terminé!"
	exit
elif [[ "$1" == "--uninstall" ]]; then
	rm "${output}"
	rm "${output2}"
	rm "$HOME/.local/share/applications/spreadsheet2table.desktop"
	rm "$HOME/.local/share/nemo/actions/spreadsheet2table.nemo_action"
	rm "$HOME/.config/Thunar/uca.xml"
	rm "$HOME/.spreadsheet2table-nautilus"
	rm "$HOME/.kde/share/kde4/services/ServiceMenus/spreadsheetconvert.desktop"
	rm "$HOME/.spreadsheet2table.sh"
	echo "Script désinstallé."
	exit
elif [ "$1" == "--select" ]; then
	input=$( zenity --file-selection --title="Veuillez selectionner un fichier" --text="Veuillez selectionner une feuille de calcul" )
else
	input="$1"
fi

function f_escape_line {
	line="${line//\*/\\*}"
	line="${line//\&/\\&}"
	line="${line//\[/\\[}"
	line="${line//\]/\\]}"
	line="${line//\$/\\$}"
	line="${line//\@/\\@}"
	line="${line//\//\\/}"
}

ssconvert -O 'separator=Ꝇ' -T Gnumeric_stf:stf_assistant "$input" "${output}"
sed -i 's/|/\//g' "${output}"
sed -i 's/Ꝇ/|/g' "${output}"
sed -i 's/\"//g' "${output}"



# On commence par compter le nombre de pipes dans chaque ligne
maxtab=0
while read line  
do
	i=$( grep -o "|" <<< "$line" | wc -l )
	if [ $i -gt $maxtab ]; then
		maxtab=$i
	fi
done < "${output}"

if [ $maxtab -eq 0 ]; then
	notify-send --icon="$icon" "Feuille de calcul" "Erreur: cette feuille de calcul semble vide."
	exit
fi

maxtab2=$maxtab
let maxtab2++
echo "Nombre de colonnes: $maxtab2"

# On ajoute les pipes manquantes à chaque ligne

i=1
while read line  
do
	f_escape_line
	i=$( grep -o "|" <<< "$line" | wc -l )
	while [ $i -lt $maxtab ]; do
		line2="${line}|"
		sed -i "s/${line}.*/${line2}/" "${output}"
		i=$( grep -o "|" <<< "$line2" | wc -l )
		line="${line2}"
	done
	# On en profite pour lire chaque cellule dans la ligne et enregistrer s'il s'agit une chaîne ou d'un nombre,
	# données que l'on utilisera ensuite pour l'alignement
	if [ $disalign != 1 ]; then
		for (( j=1; j<=${maxtab2}; j++ ))
		do
			alignar[$j]=0
		done
		for (( j=1; j<=${maxtab2}; j++ ))
		do
			tst=$( echo "$line" | cut -d '|' -f $j )
			chk=$( echo "$tst" | grep -E '[a-zA-Z]+' )
			if [[ "$chk" != "" ]]; then
				let alignar[$j]++
			else
				chk=$( echo "$tst" | grep -E '^[[:digit:]]+$' )
				if [[ "$chk" != "" ]]; then
					let alignar[$j]--
				fi
			fi
		done
	fi
	let i++
done < "${output}"

# On met les lignes en valeur en fonction de ce qui est en gras dans le fichier d'origine
ssconvert -T Gnumeric_html:xhtml "$input" "${output2}"
sed -i ':a;N;$!ba;s/td>\n//g' "${output2}"
sed -i ':a;N;$!ba;s/tr>\n<td//g' "${output2}"
debut=$( grep -n -e "<caption>" --max-count=1 "${output2}" | cut -d ':' -f 1 )
fin=$( grep -n -e "</table>" --max-count=1 "${output2}" | cut -d ':' -f 1 )

while read -r result ; do
	result=$( echo "$result" | cut -d ':' -f 1  )
	(( result = result - debut ))
	echo "Mise en valeur de la ligne $result"
	line=$( sed -n "$result p" "${output}" )
	f_escape_line
	sed -i "s/^${line}.*/\^ ${line}/" "${output}"
done < <( grep -n -e "<b>" "${output2}" )
sed -i "s/^\^/\n\^/" "${output}"

# TO DO
# On fait pareil pour les URL
#while read -r result ; do
#	result=$( echo "$result" | cut -d ':' -f 1  )
#	(( result = result - debut ))
#	echo "Ajout d'un lien sur la ligne $result"
#	line=$( sed -n "$result p" "${output}" )
#	line2=${line/${link}/[url=${url}]${link}[/url]}
#	f_escape_line
#	sed -i "s/^${line}.*/${line2}/" "${output}"
#done < <( grep -n -e "a href" "${output2}" )

# On gère l'alignement
for (( j=1; j<=${maxtab2}; j++ ))
do
	if [ ${alignar[$j]} -lt 0 ]; then
		align="${align}${numalign}"
	else
		align="${align}${stringalign}"
	fi
done

# On met les balises
sed -i "1i[rltable=${align}]" "${output}"
echo "[/rltable]" >> "${output}"

cat "${output}" | xclip -sel clip
rm "${output}"
rm "${output2}"
notify-send --icon="$icon" "Feuille de calcul" "Tableau converti et copié dans le presse-papier!"

Rendez ensuite le fichier exécutable (Propriétés > Permissions).

Lancez maintenant le script dans une console avec le paramètre --install:

/chemin/du/script --install

S'il y a des paquets manquants, le script vous l'indiquera. Si ça arrive, installez-les et relancez l'installation. Celle-ci créera automatiquement une entrée dans le menu d'applications (dans "Accessoires"), ainsi que dans les menus contextuels de nemo (mint), nautilus (ubuntu/gnome), dolphin (kubuntu/kde), et thunar (xubuntu/XFCE).

NB: Il faut avoir installé gnumeric pour que ce script marche (ça tombe bien, c'est le meilleur tableur disponible wink).

Vous pourrez alors soit sélectionner manuellement une feuille de calcul, soit faire un clic droit sur un fichier, et le script va automatiquement convertir la feuille en utilisant la syntaxe de RL, et envoyer le tout dans le presse-papier. Vous n'aurez alors qu'à coller le tout sur RL.

5428_capture_du_2014-10-24_165029_24-10-14.png

5428_screenshot_-_24102014_-_165101_24-10-14.png

Le résultat obtenu ressemble à ça:

 
TypeRéférencePoids (sac)Poids (sur soi)
 
Portage4470
Sac à DosMLD Prophet389
PocheZpacks Cuben Fiber Belt Pouch (2013)20
Sac ÉtancheZpacks Large Blast Food Bag Rectangular (bouffe)27
Sac ÉtancheZpacks Medium Stuff Sack (fringues)7
Sacs DiversZpacks Mini Stuff Sack (petit matos) + sac pour la petite électronique4
 
Couchage11150
SursacMLD Soul Bivy334
Sac de CouchageMLD Spirit Quilt 28597
Tapis de SolRidgerest Solite121
GuylinesSpectra + un mini-nousqueton de 2g9
SardinesVargo Nail Stake x 6 (cordelettes remplacées) + Stuff Sack54
 
Vêtements5531614
PonchoMLD Cuben Poncho160
DoudouneTriple Zero Antza M165
ManchesBout de collant technique50
MitainesGants D4 redécoupés20
BonnetD4 Forclaz 2015
Coupe-VentPatagonia Houdini M103
PantalonThunderbolt Jeans (32x30)429
ChaussettesX-Socks Run Speed Two 43-444040
Caleçon / ShortCraft Performance Hybrid Short M130
T-ShirtIcebreaker Tech T Lite 150 M156
BasketsD4, taille 44786
Chèche73
 
Cuisine & Hydratation1600
CouteauOpinel n°8 Effilé29
BouteillePlastique 1L26
Poche à EauPlatypus 2L35
Traitement de l'EauSawyer Squeeze Filter70
 
Pharmacie & Hygiène210
Savon
Brosse à DentsManche raccourci + sac servant aussi pour le savon (2g)6
RasoirManche coupé1
DiversPince à épiler, cure-dent, ciseaux, pansements14
 
Divers24071
BricolageTenacious Tape, cuben tape, fil, aiguilles, bout de ficelle, épingles à nourrice24
FrontalePetzl e+Lite + piles de rechange31
BoussolePremier prix, plaquette virée13
ParapluieEuroshism Dainty Alu161
BriquetMini Bic (sans la protection enfant)10
PapiersPasseport, carte de crédit, carnet de vaccination international66
CarteGrande échelle sur feuille A4 en backup5
StyloStylo de Swiss Card1
 
Électronique3530
DictaphoneSandisk Sansa Clip Zip (sans le clip ni les écouteurs)21
LiseuseSony PRS-T2 + dry bag sur-mesure173
APNSony WX80124
Chargeur USBAmazon25
Câble Micro USB10
 
Total28891685

Autrement dit, le texte à gauche, les nombres à droite et la mise en valeur des lignes est basée sur les termes mis en gras dans le fichier original (si vous avez au moins un mot en gras sur une ligne dans le fichier original, toute la ligne sera mise en valeur sur RL - je ne peux pas faire autrement).

Pas testé avec tous les formats imaginables, mais ça devrait passer. Il se peut aussi que certains caractères spéciaux vérolent certaines lignes. Si ça arrive, merci de me le signaler, je corrigerai.

Dernière modification par Kam (03-11-2014 16:37:02)

Hors ligne

#20 24-10-2014 17:10:23

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Bien joué Kam ! Ça c'est de l'intégration cool

Dans le même genre, as-tu essayé la méthode d'import de données depuis un tableur  ? https://www.randonner-leger.org/forum/v … 71#p369971   

Import de données depuis un tableur

Vous pouvez importer rapidement vos données depuis votre tableur ainsi :
* sélectionnez un rectangle de données dans le tableur
* copiez
* ouvrez l'outil tableau de la barre d'outil  bouton tableau
* collez dans la zone de contenu
* cliquez sur le bouton Conversion TAB → | : votre tableau est converti au format RL.
* renseignez le paramètre d'alignement
* Validez


à+

Dernière modification par kstt (24-10-2014 17:12:42)


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#21 24-10-2014 17:36:19

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

Ah oui, j'avais oublié. Très sympa aussi. wink

Ca donne en gros le même résultat, avec quelques clics de plus pour ceux qui ne sont pas sous Linux. Par contre, tu dois compter manuellement le nombre de colonnes pour l'alignement. Si tu as le temps, ça serait peut-être possible de l'automatiser?

Hors ligne

#22 24-10-2014 18:01:04

kstt
carotte
Inscription : 02-10-2012
Messages : 1 457

Re : Tableaux dans le forum

Ce serait possible, sans aucun doute. Mais comme avec ton outil, ce n'est pas simple de deviner les souhaits d'alignement de l'utilisateur smile  Est-ce qu'on mettrait tout à gauche par défaut ? Est-ce qu'on ferait une heuristique pour essayer de deviner les colonnes numériques et les mettre à droite ?

J'ai un peu peur que ça soit fragile comme comportement, qu'en penses-tu ?


« Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. » - Antoine de Saint-Exupéry, Terre des hommes

Hors ligne

#23 24-10-2014 18:29:37

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

Perso je mettrais tout à gauche (c'est ce que j'ai fait dans le script plus haut, même si je vais voir si je ne peux pas récupérer les infos d'alignement en exportant dans un autre format et mettre l'alignement réel).

Comme c'est actuellement, l'utilisateur doit compter chaque colonne (quand il y en a 10, c'est lourd), et mettre le code correspondant. Pourquoi ne pas pré-remplir le truc du coup, et mettre un 'l' ou 'c' par colonne par défaut dans le champ? Ca pourrait être un bon compromis. Qu'est-ce que tu en penses? Ca faciliterait la tâche tout en permettant à l'utilisateur de modifier l'alignement depuis le pop up s'il le souhaite.

EDIT - Précision.

Dernière modification par Kam (24-10-2014 18:37:21)

Hors ligne

#24 25-10-2014 01:12:30

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

V2 du script, qui gère maintenant la mise en valeur des cellules (exemple dans mon précédent post). Reste plus que l'alignement, mais ça va être plus compliqué de faire un truc cohérent.

Dernière modification par Kam (25-10-2014 01:13:58)

Hors ligne

#25 25-10-2014 16:20:09

Kam
Membre
Inscription : 19-01-2011
Messages : 2 988

Re : Tableaux dans le forum

V3 vite-fait, avec intégration dans thunar et nautilus (en plus de nemo), et surtout une installation complètement automatisée: lancez le script plus haut avec le paramètre --install, et c'est parti.

EDIT - Je pourrais le faire pour kde aussi, mais c'est à condition d'avoir un testeur (pas envie d'installer kde-desktop). Si quelqu'un est intéressé, qu'il me le fasse savoir.

Dernière modification par Kam (25-10-2014 17:32:08)

Hors ligne

Pied de page des forums