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èveGenève
SœurSÅ“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.

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 donne

Page révisée le