Remplir un PDF depuis Excel
Une ligne par exemplaire, une colonne par information. Et une difficulté bien française avec les fichiers CSV, dont personne ne prévient avant qu’il soit trop tard.
À quoi doit ressembler le tableur
La première ligne porte les en-têtes, c’est-à-dire le nom de chaque colonne. Ce sont eux que vous verrez au moment d’associer les colonnes aux champs, alors autant qu’ils soient lisibles. Nom et Montant valent mieux que col1 et col2.
Chaque ligne suivante donne un exemplaire. Trente lignes, trente PDF.
Une cellule vide ne pose pas de problème, le champ correspondant reste vide sur cet exemplaire-là. Ce qui compte est que la colonne existe.
XLSX plutôt que CSV, si vous avez le choix
Le format .xlsx est celui d’Excel, de LibreOffice et des tableurs en ligne. Il transporte son encodage avec lui, donc il n’y a rien à deviner et les accents arrivent comme vous les avez tapés.
Un CSV est un fichier texte tout bête. Il ne dit ni comment ses colonnes sont séparées, ni dans quel encodage il est écrit. Ces deux choses doivent être devinées, et c’est de là que viennent les ennuis.
Le problème du CSV français
Le sigle CSV veut dire comma-separated values, des valeurs séparées par des virgules. Sauf qu’en France la virgule sert déjà de séparateur décimal, comme dans 1 234,56. Excel en français exporte donc ses CSV avec un point-virgule, et le plus souvent dans l’encodage Windows-1252 au lieu d’UTF-8, parfois avec une marque invisible en tête de fichier.
Un outil qui suppose « virgule et UTF-8 », ce qui est l’hypothèse la plus répandue, obtient alors une seule colonne géante, ou bien du texte où chaque accent a été remplacé par deux caractères bizarres.
| Ce que vous avez tapé | Ce qui s’affiche |
|---|---|
| Société | Société |
| Genève | Genève |
| Sœur | SÅ“ur |
Ce qui rend la chose pénible, c’est le moment où on s’en rend compte. Généralement à la fin, sur les documents produits, quand les trois cents PDF sont déjà là.
Publiposter devine le séparateur et l’encodage, vous montre ce qu’il a trouvé, et vous laisse le corriger si la lecture est mauvaise. Un aperçu du tableau s’affiche avant toute génération. C’est là qu’il faut regarder si les accents sont intacts.
Exporter proprement
Dans Excel, Enregistrer sous puis Classeur Excel (.xlsx), et il n’y a rien d’autre à faire. Si le CSV est imposé, cherchez l’option CSV UTF-8 quand votre version la propose, car ce format-là est sans ambiguïté.
LibreOffice Calc ouvre une fenêtre au moment de l’export, avec un menu pour le jeu de caractères. Choisissez Unicode (UTF-8).
Nombres, dates, montants
Ce qu’il y a dans la cellule et ce qui doit apparaître sur le document sont deux choses différentes. La mise en forme se fait au moment du remplissage, ce qui évite de préparer une colonne par présentation.
- Les nombres sortent à la française, virgule décimale et espace pour les milliers, donc
1 234,56. - Les dates sont réécrites en
JJ/MM/AAAA, quelle que soit la façon dont Excel les avait rangées. - Les montants en toutes lettres sont calculés à partir du nombre, pour les documents qui les demandent. Une seule colonne suffit donc pour les deux.
Jusqu’à combien de lignes
Trois mille passent. La génération se fait par paquets, la progression s’affiche, et on peut interrompre en cours de route sans perdre ce qui est déjà fait. Le poids de l’archive dépend surtout du PDF de départ. Un formulaire d’une page fait quelques dizaines de kilo-octets, un scan en couleur beaucoup plus.
Importer un tableur et voir ce que ça donnePage révisée le