Comment importer des tableaux PDF dans Excel : un guide pratique

2026-10-14 09:05:34 Jack Du
AI Summarize:
ChatGPT
ChatGPT ✓
Claude ✓
Grok ✓
Perplexity ✓
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Import PDF Tables into Excel

Les tableaux PDF contiennent souvent des données que vous devez trier, filtrer ou analyser dans Excel. Le copier-coller peut laisser ces données dans une seule colonne ou perturber leur structure de lignes. La fonctionnalité intégrée À partir d’un PDF d’Excel offre un moyen plus direct d’importer les tableaux détectés dans des cellules de feuille de calcul.

Ce guide explique comment importer des tableaux PDF avec Power Query, combiner des tableaux sur plusieurs pages, préserver les zéros non significatifs et vérifier les espaces dans le texte renvoyé à la ligne. Il inclut également un workflow Python pour extraire les tableaux d’un dossier de fichiers PDF vers des classeurs Excel.

Les étapes Power Query ci-dessous utilisent Excel pour Windows avec le connecteur À partir d’un PDF disponible. Commencez par un PDF texte ; les pages numérisées nécessitent un workflow OCR avant que leurs données de tableau puissent être extraites.

1. Importer des tableaux PDF dans Excel avec Power Query

La fonctionnalité À partir d’un PDF d’Excel vous permet d’identifier des tableaux dans un PDF et d’importer leurs données dans des cellules de feuille de calcul. Ouvrez le tableau dans l’Éditeur Power Query pour examiner son contenu avant de le charger.

  1. Ouvrez Excel et sélectionnez Données → Obtenir des données → À partir d’un fichier → À partir d’un PDF. Get data from PDF
  2. Sélectionnez votre fichier PDF et cliquez sur Importer.
  3. Dans la fenêtre Navigateur, sélectionnez une entrée Table détectée pour prévisualiser son contenu. Vérifiez qu’elle contient les lignes et colonnes dont vous avez besoin. Select a detected table
  4. Cliquez sur Transformer les données pour ouvrir l’Éditeur Power Query. Transform data
  5. Examinez le tableau, puis sélectionnez Accueil → Fermer & Charger pour le charger dans une feuille de calcul Excel. Close and load

Si l’aperçu est déjà correct et qu’aucun ajustement n’est nécessaire, vous pouvez cliquer directement sur Charger dans le Navigateur.

Pour les tableaux qui nécessitent une combinaison ou un nettoyage, effectuez les ajustements décrits dans les sections suivantes avant de charger le résultat final.

2. Combiner des tableaux sur plusieurs pages

Power Query peut reconnaître un tableau s’étendant sur plusieurs pages PDF comme un seul tableau ou comme des tableaux distincts. Vérifiez les entrées dans le Navigateur avant de décider de les combiner.

Lorsque Power Query détecte un seul tableau

Des en-têtes cohérents répétés sur chaque page peuvent aider Power Query à reconnaître l’ensemble du tableau. Dans le Navigateur, il peut apparaître comme une seule entrée telle que Table001 (Page 1–3).

Sélectionnez cette entrée et vérifiez l’aperçu. Si elle contient tous les enregistrements requis, cliquez sur Charger, ou choisissez Transformer les données pour effectuer d’abord des ajustements. Aucune opération de combinaison n’est nécessaire.

Lorsque Power Query détecte des tableaux distincts

Si seule la première page contient des en-têtes, Power Query peut détecter les pages de continuation comme des tableaux distincts avec des noms de colonnes génériques tels que Column1, Column2 et Column3.

Pour les combiner :

  1. Dans le Navigateur, activez Sélectionner plusieurs éléments.
  2. Sélectionnez les tableaux appartenant au même tableau inter-pages et vérifiez leurs aperçus. Select the tables belonging to the same cross-page table
  3. Cliquez sur Transformer les données. Chaque tableau sélectionné apparaît comme une requête distincte dans l’Éditeur Power Query. Transform data
  4. Utilisez les en-têtes du premier tableau comme référence et renommez les colonnes correspondantes dans les tableaux de continuation. Par exemple, renommez Column1 en Employee ID et Column2 en Full Name. Rename column names
  5. Vérifiez que les noms de colonnes correspondants concordent exactement, y compris les espaces éventuels, avant de les combiner.

Les en-têtes d’un seul mot tels que Department n’ont généralement pas besoin d’être ressaisis. Faites plus attention aux en-têtes de plusieurs mots, en particulier ceux qui sont renvoyés à la ligne dans le PDF.

Par exemple, Employee et ID peuvent apparaître sur des lignes séparées dans la cellule source. Le Navigateur peut afficher l’en-tête comme Employee ID, même si son nom réel contient un saut de ligne plutôt qu’un espace. Renommer la colonne d’un autre tableau en Employee ID avec un espace normal créerait alors une incohérence.

Pour un en-tête renvoyé à la ligne, cliquez avec le bouton droit sur la colonne dans la première requête et sélectionnez Renommer. Sélectionnez le nom existant en entier et saisissez manuellement un nom sur une seule ligne, tel que Employee ID. Utilisez ce nom exact pour les colonnes correspondantes dans les autres requêtes. Évitez de copier l’en-tête renvoyé à la ligne d’origine, qui peut conserver le saut de ligne masqué.

Une fois les noms de colonnes cohérents :

  1. Sélectionnez une requête et choisissez Accueil → Combiner des requêtes ▼ → Combiner des requêtes comme nouvelle. Append queries as new
  2. Choisissez Deux tableaux ou Trois tableaux ou plus, selon le nombre de requêtes. Three or more tables
  3. Sélectionnez les tableaux à combiner. Pour trois tableaux ou plus, ajoutez-les à la liste Tableaux à combiner et disposez-les dans l’ordre des pages PDF. Select tables to append
  4. Cliquez sur OK pour créer la requête combinée. Combined query

Power Query combine les données en faisant correspondre les noms de colonnes, plutôt que les positions des colonnes. Si le résultat contient deux colonnes apparemment identiques ou des valeurs null inattendues, revenez aux requêtes sources et vérifiez leurs noms pour détecter des sauts de ligne masqués ou des espaces supplémentaires.

Enfin, examinez le tableau combiné pour rechercher des enregistrements manquants, des lignes d’en-tête répétées et du texte de pied de page indésirable avant de le charger dans Excel.

3. Préserver les zéros non significatifs dans les colonnes d’ID

Les ID d’employé, les codes produit et les identifiants similaires peuvent contenir des zéros non significatifs. Si Power Query attribue un type de données numérique à ces valeurs, un ID tel que 00123 peut apparaître comme 123.

Pour préserver l’ID d’origine :

  1. Dans l’Éditeur Power Query, sélectionnez la colonne Employee ID. Select employee id column
  2. Ouvrez le menu Type de données et remplacez Nombre entier par Texte. Change data type
  3. Si vous êtes invité à remplacer la conversion de type existante, choisissez Remplacer l’actuel. Replace current
  4. Vérifiez que les valeurs affichent leurs zéros non significatifs—par exemple, 00123 au lieu de 123. Check the values

Traitez les identifiants comme du texte même lorsqu’ils ne contiennent que des chiffres. Leur but est d’identifier des enregistrements, plutôt que de servir de valeurs pour des calculs.

Effectuez cet ajustement avant de charger les données dans Excel. Si la modification du type ne restaure pas les zéros, comparez les valeurs avec le PDF d’origine ; les zéros manquants ne peuvent pas être déduits de manière fiable, sauf si les identifiants suivent une règle de longueur fixe connue.

4. Vérifier le texte renvoyé à la ligne et charger le tableau final

Le texte qui est renvoyé à la ligne dans une cellule PDF peut être joint sans espace lors de l’importation. Par exemple, un nom affiché comme Robert sur une ligne et Williams sur la suivante peut devenir RobertWilliams.

Vérifiez les colonnes contenant des noms, des adresses et des descriptions par rapport au PDF d’origine. Corrigez individuellement les erreurs d’espacement confirmées. Pour une valeur incorrecte spécifique, sélectionnez la colonne et utilisez Transformer → Remplacer les valeurs pour la remplacer par le texte correct.

Évitez d’appliquer une règle générale qui insère des espaces partout où le texte a été renvoyé à la ligne. Un seul mot peut également être coupé sur plusieurs lignes : Coordinato suivi de r devrait devenir Coordinator, sans espace.

Avant de charger le tableau final, vérifiez que :

  • Le nombre d’enregistrements correspond au tableau source.
  • Les enregistrements aux limites de page sont complets.
  • Les colonnes d’ID conservent leurs zéros non significatifs.
  • Le texte renvoyé à la ligne a l’espacement correct.
  • Les colonnes numériques et de date utilisent des types de données appropriés.

Ensuite, sélectionnez Accueil → Fermer & Charger ▼ → Fermer & Charger vers, choisissez Tableau, puis sélectionnez la feuille de calcul de destination.

Si vous avez combiné plusieurs requêtes au niveau des pages, chargez uniquement la requête combinée finale en tant que tableau de feuille de calcul. Définissez les requêtes intermédiaires sur Créer uniquement une connexion afin qu’elles restent disponibles pour la requête combinée sans créer de tableaux de feuille de calcul séparés.

5. Automatiser l’extraction de tableaux PDF vers Excel avec Python

Power Query offre un moyen interactif d’importer et de préparer des données de tableaux PDF. Lorsque vous devez traiter plusieurs fichiers PDF de manière répétée, vous pouvez automatiser l’extraction avec Python.

L’exemple suivant utilise Spire.PDF for Python pour détecter les tableaux et lire le contenu de leurs cellules, et openpyxl, une bibliothèque Excel open source, pour écrire les données extraites dans des fichiers XLSX. Chaque PDF produit un classeur, chaque tableau détecté étant enregistré dans une feuille de calcul distincte.

Installer les bibliothèques

Installez les deux packages :

pip install Spire.PDF openpyxl

Code d’extraction par lots

Mettez à jour INPUT_FOLDER et OUTPUT_FOLDER pour qu’ils correspondent à vos répertoires. Le script lit directement les fichiers PDF du dossier d’entrée, examine chaque page et enregistre les classeurs résultants dans le dossier de sortie.

from pathlib import Path

from spire.pdf import PdfDocument, PdfTableExtractor
from openpyxl import Workbook
from openpyxl.styles import Alignment


INPUT_FOLDER = Path(r"E:\Documents\input")
OUTPUT_FOLDER = Path(r"E:\Documents\output")


def extract_pdf_tables_to_excel(pdf_path, output_path):
    doc = PdfDocument()

    try:
        doc.LoadFromFile(str(pdf_path))
        extractor = PdfTableExtractor(doc)

        workbook = Workbook()
        workbook.remove(workbook.active)
        table_count = 0

        # Extract tables from every page.
        for page_index in range(doc.Pages.Count):
            tables = extractor.ExtractTable(page_index)

            if tables is None:
                continue

            for table_index in range(len(tables)):
                table = tables[table_index]
                row_count = table.GetRowCount()
                column_count = table.GetColumnCount()

                if row_count == 0 or column_count == 0:
                    continue

                sheet = workbook.create_sheet(
                    title=f"Page{page_index + 1}_Table{table_index + 1}"
                )

                for row_index in range(row_count):
                    for column_index in range(column_count):
                        text = table.GetText(row_index, column_index)

                        cell = sheet.cell(
                            row=row_index + 1,
                            column=column_index + 1
                        )

                        # Preserve extracted values as literal text.
                        cell.value = text if text is not None else ""
                        cell.data_type = "s"
                        cell.number_format = "@"
                        cell.alignment = Alignment(
                            vertical="top",
                            wrap_text=True
                        )

                for column_cells in sheet.columns:
                    column_letter = column_cells[0].column_letter
                    sheet.column_dimensions[column_letter].width = 22

                table_count += 1

        if table_count == 0:
            print(f"Skipped: {pdf_path.name} — no tables detected.")
            return

        workbook.save(str(output_path))
        print(
            f"Saved: {output_path.name} "
            f"({table_count} tables)"
        )

    finally:
        doc.Close()


def main():
    if not INPUT_FOLDER.is_dir():
        raise FileNotFoundError(
            f"Input folder not found: {INPUT_FOLDER}"
        )

    OUTPUT_FOLDER.mkdir(parents=True, exist_ok=True)

    pdf_files = sorted(
        (
            path for path in INPUT_FOLDER.iterdir()
            if path.is_file() and path.suffix.lower() == ".pdf"
        ),
        key=lambda path: path.name.lower()
    )

    if not pdf_files:
        print("No PDF files found in the input folder.")
        return

    for pdf_path in pdf_files:
        output_path = OUTPUT_FOLDER / f"{pdf_path.stem}.xlsx"

        try:
            extract_pdf_tables_to_excel(pdf_path, output_path)
        except Exception as error:
            print(f"Failed: {pdf_path.name} — {error}")


if __name__ == "__main__":
    main()

Le script appelle ExtractTable() pour chaque page PDF, puis lit chaque tableau détecté avec GetRowCount(), GetColumnCount() et GetText(). Les cellules extraites sont écrites dans leurs lignes et colonnes correspondantes dans une nouvelle feuille de calcul.

Les fichiers sans tableau détecté sont ignorés. Si un PDF ne peut pas être traité, le script signale l’erreur et continue avec les fichiers restants.

Vous aimerez peut-être aussi : Extraire des tableaux d’un PDF avec Python

Sortie et considérations

Automate PDF Table Extraction

Un PDF nommé report.pdf produit un classeur nommé report.xlsx. Les noms de feuilles de calcul identifient la page source et le tableau, tels que Page1_Table1, Page1_Table2 et Page2_Table1.

Toutes les valeurs extraites sont écrites sous forme de texte. Cela préserve les zéros non significatifs présents dans le contenu extrait, tels que 00123, et empêche le texte commençant par = d’être interprété comme une formule Excel. Les montants et les dates restent également du texte et peuvent nécessiter une conversion avant les calculs ou l’analyse basée sur les dates.

Cet exemple exporte les données de tableau plutôt que de reproduire l’apparence d’origine du PDF. Il ne recrée pas les polices, les bordures ou la mise en forme des cellules fusionnées de la source, et il ne corrige pas les erreurs d’extraction telles que les espaces manquants. Si un tableau inter-pages est détecté comme des tableaux distincts, ces parties sont enregistrées dans des feuilles de calcul distinctes plutôt que d’être automatiquement combinées.

Examinez le classeur généré par rapport au PDF source avant d’utiliser ses données. L’exécution du script à nouveau écrase les fichiers XLSX existants portant les mêmes noms dans le dossier de sortie.

6. Questions fréquentes

Pourquoi je ne trouve pas l’option À partir d’un PDF dans Excel ?

Les connecteurs disponibles dépendent de votre version et de votre plateforme Excel. Vérifiez Données → Obtenir des données → À partir d’un fichier pour À partir d’un PDF. S’il est absent, vérifiez si votre installation prend en charge le connecteur PDF. Les étapes d’importation Power Query de ce guide supposent que l’option est disponible.

Puis-je importer un tableau PDF numérisé à l’aide de ces méthodes ?

Un PDF numérisé stocke le contenu de ses pages sous forme d’images. Les workflows présentés ici n’incluent pas d’OCR, ils sont donc destinés aux PDF textuels. Pour les documents numérisés, utilisez un outil OCR capable de reconnaître la structure des tableaux et d’exporter des données structurées, puis vérifiez les valeurs extraites par rapport à la source.

Le tableau Excel importé ressemblera-t-il exactement au PDF ?

Ces méthodes se concentrent sur l’extraction des données de cellules à utiliser dans Excel. Elles ne garantissent pas que les polices, couleurs, bordures, largeurs de colonnes ou cellules fusionnées du PDF seront reproduites. Appliquez une mise en forme Excel après l’importation si vous avez besoin d’une apparence particulière.

Puis-je actualiser le tableau Power Query lorsque le PDF change ?

Oui. Si le PDF source est mis à jour au même chemin de fichier, utilisez Données → Actualiser tout pour réexécuter la requête. Examinez le résultat ensuite, surtout si le nombre de pages, les tableaux détectés ou la structure des colonnes ont changé. Ces changements peuvent nécessiter des ajustements de la requête.

7. Conclusion

L’importation de tableaux PDF dans Excel implique plus que la détection de lignes et de colonnes. Power Query fournit un point de départ pratique, mais les étapes suivantes dépendent du résultat : un tableau inter-pages peut être prêt à être chargé en un seul tableau, ou ses sections peuvent nécessiter des noms de colonnes correspondants avant de pouvoir être combinées. Les zéros non significatifs et les espaces dans le texte renvoyé à la ligne méritent également une attention particulière, car un tableau apparemment propre peut encore contenir des valeurs altérées.

Pour les tâches récurrentes, le workflow Python étend ce processus à un dossier de PDF, en enregistrant chaque fichier sous forme de classeur avec des feuilles de calcul distinctes pour ses tableaux détectés. Choisissez le workflow adapté à votre charge de travail, puis comparez la sortie avec le PDF source—en particulier les identifiants, le texte multiligne et les enregistrements aux limites de page. Ces vérifications aident à garantir que les données importées sont prêtes pour le filtrage, les calculs et l’analyse plus poussée.

Voir aussi