anchor.diff:  evaluator.getJexlEngine().setFunctions(functionMap);
   ----
   
  -Pour utiliser notre fonction, il nous suffit alors de modifier par exemple pour la liste des titulaires, le contenu de la cellule correspondante de ${medicament.titulaires} à ${joiner:join(medicament.titulaires)}.
  +Pour utiliser notre fonction, il nous suffit alors de modifier par exemple pour la liste des titulaires, le contenu de la cellule correspondante de *${medicament.titulaires}* à *${joiner:join(medicament.titulaires)}.*
  +
  +image::jxls/template3.png[]
   
   Et si nous relançons la génération du rapport, cette fois-ci, ça passe sans problème :
  +
  +image::jxls/result.png[]
   
   Conclusion
   ==========
  
positive.code: Template Excel
  ==============
  
  Maintenant que nous avons notre jeu de données, nous pouvons maintenant définir notre template Excel. Et là, nous partons tout simplement d'un fichier Excel classique :
  
  Vous pouvez voir que les cellules censées contenir les données de chaque médicament utilise la syntaxe suivante ${variable.propriete}. Cette syntaxe est connue de JXLS bien sûr et sera utilisée pour remplir le document avec les données finales.
  
  C'est maintenant que je JXLS entre en scène ; dans un premier temps, nous allons enrichir notre template en utilisant un des mécanismes fournis par JXLS pour simplifier la gestion des données : le système de markup. 
  
  Nous allons tout simplement insérer des metadatas JXLS au sein du template via les commentaires (remarque : les markups JXLS utilise la syntaxe Apache JEXL).
  
  Pour notre besoin, nous n'avons besoin que de définir 2 markups :
  
  - le premier (jx:area(lastCell="L2") défini la zone d'action de JXLS au sein du template (ici de la cellule A1 à la cellule L2). C'est une étape indispensable afin de permettre à JXLS de manipuler le fichier ; en effet, l'application de Command JXLS (ie. transformation et écriture au sein du fichier) ne peut se faire qu'au sein d'une Area. Il est bien sûr possible de définir plusieurs Areas ou même d'imbriquer des Areas au sein d'un même fichier mais dans notre cas, ça ne sera pas nécessaire.
  - le deuxième et dernier commentaire (jx:each(items="medicaments" var="medicament" lastCell="L2")) indique à JXLS que nous désirons itérer sur la variable medicaments (ie. liste des médicaments), chaque élément de cette liste est associé à la variable medicament et le mapping de cette dernière avec le template s'applique jusqu'à la cellule L2.
  
  Voilà, notre template est prêt.
  
  
negative.code:     ...
  ----
  
  Maintenant, il ne nous reste plus qu'à lire le fichier CSV et à indiquer à Jackson les informations de mapping pour récupérer la liste complète des médicaments :
  
  [source,java]
  ----
  