convert-excel-to-md

Par github · awesome-copilot

Convertit les classeurs Excel (.xlsx) en Markdown afin que leur contenu puisse être analysé, résumé, recherché ou extrait avec précision. Utilisez cette skill chaque fois que l'utilisateur partage, référence ou pose des questions sur un fichier .xlsx — même s'il ne dit pas explicitement « convertir » ou « markdown ». Cela inclut les demandes de « lire », « résumer », « examiner », « extraire des données de », « comparer », « créer un graphique à partir de » ou « analyser » une feuille de calcul, un classeur, un budget, un export de données ou un tracker. Exécutez toujours le script de conversion fourni pour produire du Markdown en premier ; ne tentez pas d'analyser directement le contenu .xlsx ni d'écrire du code d'extraction ad hoc. Utilisez également cette skill pour les demandes par lot portant sur un dossier entier de classeurs Excel. IMPORTANT : Lorsque l'utilisateur fait référence à un dossier ou un ensemble de documents contenant plusieurs types de fichiers (.pdf, .docx, .xlsx), invoquez les trois skills associées — convert-pdf-to-md, convert-word-to-md et convert-excel-to-md — afin qu'aucun type de fichier ne soit ignoré silencieusement.

npx skills add https://github.com/github/awesome-copilot --skill convert-excel-to-md

Convertir Excel en Markdown

Quand utiliser cette skill

Déclenchez cette skill chaque fois qu'il y a un fichier .xlsx à comprendre ou traiter — par exemple, un utilisateur jointe une feuille de calcul et pose des questions à son sujet, veut un résumé des données, veut extraire des lignes ou valeurs spécifiques, ou veut traiter plusieurs classeurs dans un dossier ensemble. Le format .xlsx natif d'Excel est un bundle XML compressé qui n'est pas lisible de manière fiable en tant que texte brut, donc convertissez-le toujours en Markdown d'abord en utilisant le script de cette skill plutôt que d'essayer d'ouvrir ou d'analyser le fichier directement.

Cette skill supporte uniquement .xlsx. Si on vous demande de convertir un fichier .xls hérité, dites à l'utilisateur que ce n'est pas supporté et demandez-lui de le réenregistrer d'abord en tant que .xlsx (Excel : Fichier > Enregistrer sous > Classeur Excel (.xlsx)).

Fichiers de types mixtes : Quand l'utilisateur référence un dossier ou un ensemble de documents contenant plusieurs types de fichiers supportés (.pdf, .docx, .xlsx), cette skill ne traite que les fichiers .xlsx. L'agent DOIT aussi invoquer les skills sœurs en parallèle :

  • convert-pdf-to-md pour tout fichier .pdf
  • convert-word-to-md pour tout fichier .docx

Ne traitez jamais un dossier en silence en sautant un type de fichier supporté. Les trois skills doivent être invoquées ensemble quand des types mixtes sont présents.

Configuration (une fois par environnement)

Avant la première conversion dans un environnement donné, suivez references/setup.md étape par étape pour vous assurer que Python, pip et le package markitdown sont installés. Faites-le de manière proactive plutôt que de deviner si l'environnement est prêt — le script lui-même échouera aussi avec un pointeur clair vers ce fichier si markitdown s'avère manquant, donc il est sûr de simplement essayer la conversion en premier si vous êtes raisonnablement confiant que la configuration a déjà été faite.

Utilisation

Le script de conversion se trouve à scripts/convert_excel_to_md.py.

Structure de sortie : Le convertisseur XLSX de MarkItDown rend chaque feuille comme sa propre table Markdown ## <SheetName> — il n'a aucun support pour les images intégrées du tout. Ce script extrait séparément les vraies images intégrées (images matricielles, pas des graphiques) et les mappe à la feuille à laquelle elles appartiennent, écrivant un dossier autonome par document :

<name>/
    img/
        sheet001_<sheetname>_img001.<ext>
        sheet002_<sheetname>_img001.<ext>
        ...
    <name>.md          (les images de chaque feuille apparaissent juste après sa table,
                         sous un titre "#### Images in this sheet")

C'est un placement par feuille, pas une position de cellule exacte — la granularité la plus fine que les sorties stables de MarkItDown ancrent (les titres ## <SheetName>). Si un classeur n'a pas d'images intégrées, aucun dossier img/ ou section d'images ne sont créés. Les graphiques Excel natifs ne sont pas extraits en tant qu'images (seules les vraies images intégrées le sont — les graphiques devraient être rendus par Excel/LibreOffice, ce que cette skill légère ne fait pas).

Fichier unique :

python scripts\convert_excel_to_md.py "C:\path\to\workbook.xlsx"

Cela crée un dossier workbook\ à côté du fichier source (contenant workbook.md et, si présent, workbook\img\). Pour contrôler explicitement le dossier de destination :

python scripts\convert_excel_to_md.py "C:\path\to\workbook.xlsx" -o "C:\path\to\output_folder"

Un dossier de classeurs (mode batch) :

python scripts\convert_excel_to_md.py "C:\path\to\folder"

Ajoutez --recursive pour inclure aussi les sous-dossiers :

python scripts\convert_excel_to_md.py "C:\path\to\folder" --recursive

Chaque .xlsx trouvé obtient son propre dossier de sortie <name>\ à côté de lui par défaut. Passez -o "C:\path\to\output_parent" pour collecter à la place tous les dossiers <name>\ générés sous un répertoire parent séparé (la structure des sous-dossiers est conservée quand combinée avec --recursive).

Après la conversion, lisez le ou les fichiers .md résultants pour effectuer l'analyse réelle que l'utilisateur a demandée — le travail du script est uniquement de produire un Markdown exact (et des images), pas d'interpréter le contenu.

Décider où va la sortie

Par défaut — toujours sortie à côté du fichier source. Le dossier <name>/ est créé dans le même répertoire que le fichier source .xlsx. C'est le défaut requis pour chaque cas. Ne remplacez-le PAS à moins que l'utilisateur ne demande explicitement un emplacement différent.

Utilisez -o uniquement quand l'utilisateur fournit explicitement un chemin de sortie (par ex., « enregistrez la sortie dans C:\output », « mettez les résultats dans D:\work »). Ne passez PAS -o basé sur le répertoire de travail courant de l'agent, le dossier d'état de session, ou toute localisation implicite.

Si le chemin du fichier source ne peut pas être entièrement résolu — par exemple, l'utilisateur ne fournit qu'un nom de fichier sans répertoire, ou le chemin est ambigu — utilisez ask_user pour confirmer le chemin absolu complet avant d'exécuter la conversion. Ne devinez jamais ni ne supposez le répertoire.

Dépannage

Symptôme Cause probable Correction
ModuleNotFoundError: No module named 'markitdown' / code de sortie 2 MarkItDown non installé Suivez references/setup.md
ERROR: Unsupported file type '.xls' / code de sortie 3 .xls hérité, pas .xlsx Demandez à l'utilisateur de réenregistrer en .xlsx
ERROR: Input path not found / code de sortie 3 Mauvais chemin, ou fichier déplacé Confirmez le chemin correct avec l'utilisateur
FAILED <file> -> ... dans la sortie batch Ce fichier spécifique est corrompu, protégé par mot de passe, ou autrement illisible Signalez quels fichiers ont échoué ; les autres fichiers du batch réussissent toujours
NOTE: skipped N non-.xlsx file(s) Le dossier contient des fichiers non-Excel Attendu — ces fichiers sont intentionnellement ignorés
Les graphiques d'une feuille n'apparaissent pas en tant qu'images Les graphiques sont des objets graphiques, pas des images matricielles intégrées — cette skill extrait uniquement les vraies images matricielles intégrées Attendu ; mentionnez cette limitation si l'utilisateur a spécifiquement besoin d'images de graphiques

Skills similaires