Table des matières
Le package datatool de LaTeX permet de manipuler des données tabulaires (comme celles d’un fichier CSV) directement dans un document LaTeX. Il est particulièrement utile pour générer automatiquement des tableaux, des listes, des rapports ou des lettres types à partir d’un jeu de données.
À quoi sert datatool ?
Il permet:
- de charger des données depuis un fichier .csv ou .txt ;
- de parcourir les enregistrements ligne par ligne (chaque ligne étant une entrée ou un “record”) ;
- d’afficher dynamiquement des tableaux, des résumés, ou des extraits filtrés de données ;
- d’effectuer des opérations comme le tri, le filtrage, la recherche, ou le calcul de moyennes.
Installation
Si tu utilises une distribution LaTeX complète comme TeX Live ou MikTeX, le package est généralement déjà installé.
Sinon, dans le préambule :
\usepackage{datatool}
Format des fichiers de données
Un fichier CSV typique :
Nom,Prénom,Âge,Ville
Durand,Luc,34,Paris
Martin,Julie,28,Lyon
Charger un fichier de données
Dans ton fichier .tex :
\DTLloaddb{noms}{donnees.csv}
- noms : nom que tu donnes à la base de données dans LaTeX.
- donnees.csv : fichier CSV dans le même dossier.
Parcourir et afficher les données
\DTLforeach{noms}{%
\Nom=Nom,\Prenom=Prénom,\Age=Âge,\Ville=Ville%
}{%
\textbf{\Prenom\ \Nom} a \Age\ ans et habite à \Ville.\\
}
Chaque ligne de données est parcourue et les champs sont insérés dans le texte.
Fonction utile
- Filtrer (à la main, via une boucle) :
\DTLforeach*{noms}{\Nom=Nom,\Age=Âge}{
\ifnum\Age>30
\Nom a plus de 30 ans.\\
\fi
}
- Trier
\DTLsort{Age}{noms}
\DTLforeach{noms}{\Nom=Nom,\Prenom=Prénom,\Age=Age,\Ville=Ville}
{
\textbf{\Prenom\ \Nom} a \Age\ ans et habite à \Ville.\\
}
La version étoilée de \DTLforeach permet de ne pas tenir compte de la casse
Astuces
- On peut charger plusieurs bases de données dans un même document.
- datatool fonctionne bien pour les rapports types, documents automatisés (ex. : attestations, factures, etc.).
Liens
Métadonnées
Posté le: 15.07.2025
Nombre de mots: 289
Temps de lecture: 2 minutes
25 mars 2025 14 juillet 2025