Guide
MarkItDown : Word, Excel et PowerPoint en Markdown
Installer MarkItDown de Microsoft, convertir des fichiers Office en Markdown par lot, décrire les images avec un modèle, et connaître ses limites.
Mis à jour le
MarkItDown est une bibliothèque Python de Microsoft, sous licence MIT, qui convertit des fichiers Office, des PDF et d'autres formats en Markdown, le format que les modèles de langage lisent le mieux. Pour un fichier Word : pip install 'markitdown[docx]', puis markitdown note.docx -o note.md. C'est l'outil le plus direct quand votre base est faite surtout de fichiers Word, Excel et PowerPoint, à condition de connaître ses limites, que son propre dépôt énonce.
Pourquoi convertir les fichiers Office
Toutes les interfaces de programmation (API) des modèles ne lisent pas les fichiers Office tels quels. La documentation de l'API d'Anthropic indique que, pour les types que son bloc document ne prend pas en charge, « par exemple .docx et .xlsx », il faut convertir en texte brut et l'inclure dans le message (Files API). Même quand une API accepte le fichier, une conversion en Markdown vous donne un texte que vous pouvez relire, découper et dédoublonner avant l'indexation.
Installer
MarkItDown demande Python 3.10 à 3.14. Le paquet se découpe en options :
| Option | Pour |
|---|---|
[docx] |
Word |
[xlsx], [xls] |
Excel récent et ancien |
[pptx] |
PowerPoint |
[pdf] |
|
[outlook] |
messages Outlook |
[az-doc-intel] |
passer par Azure Document Intelligence |
[all] |
tout |
pip install 'markitdown[docx,xlsx,pptx]'
Convertir en ligne de commande
markitdown offre-commerciale.pptx -o offre-commerciale.md
cat procedure.pdf | markitdown > procedure.md
Les extensions tierces (plugins) sont désactivées par défaut ; on les active avec --use-plugins.
Convertir un dossier en Python
L'API Python tient en trois lignes. Voici une boucle sur un dossier partagé exporté :
from pathlib import Path
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
for f in Path("export").glob("*.*"):
if f.suffix.lower() in {".docx", ".xlsx", ".pptx"}:
Path("md", f.stem + ".md").write_text(md.convert(str(f)).markdown, encoding="utf-8")
Créez le dossier md avant de lancer la boucle, et gardez en métadonnée le chemin du fichier d'origine : c'est lui qu'on citera dans la réponse (voir Métadonnées).
Décrire les images des présentations
MarkItDown peut faire décrire les images par un modèle de langage, en lui passant llm_client et llm_model (et en option llm_prompt). Le dépôt précise que cette fonction ne vaut « pour l'instant que pour les fichiers pptx et les fichiers image ». Pour un Word plein de schémas, il faut donc une autre voie : la documentation d'Anthropic conseille par exemple de convertir le .docx en PDF pour profiter de la lecture des images intégrée au traitement des PDF. D'autres options sont décrites sur la page Images et schémas.
Les PDF difficiles : l'option Azure
Pour les PDF mis en page ou scannés, MarkItDown peut déléguer à Azure Document Intelligence :
markitdown scan.pdf -o scan.md -d -e "<point d'accès Document Intelligence>"
La clé se passe par la variable AZURE_API_KEY ; à défaut, MarkItDown utilise DefaultAzureCredential. Chaque appel est facturé par Azure (tarifs relevés sur la page des services de reconnaissance de caractères).
Les limites écrites dans le dépôt
- Fidélité : la sortie « n'est peut-être pas la meilleure option pour des conversions très fidèles destinées à des humains ». MarkItDown vise la lecture par une machine.
- Sécurité : MarkItDown lit et écrit « avec les privilèges du processus courant ». Le dépôt recommande, dans un environnement qui reçoit des fichiers non fiables, de contrôler les entrées et d'utiliser la méthode
convert_*la plus étroite possible. - Coût : les formats envoyés à un service Azure déclenchent chacun un appel facturable.
Quand préférer un autre outil
Pour des PDF à colonnes, des tableaux complexes ou des scans traités en local, un outil qui analyse la mise en page, comme Docling, donnera un meilleur Markdown. Le comparatif des quatre outils libres est sur la page PDF en Markdown.
Exemple illustratif
Prenons une PME de services dont les offres types sont des PowerPoint et les grilles de prix des classeurs Excel. Une conversion par MarkItDown, suivie d'une relecture des tableaux de prix les plus utilisés, suffit souvent à produire une base lisible, que l'on complète par la description des schémas des présentations.
Questions fréquentes
MarkItDown lit-il les anciens fichiers .xls ?
Oui, avec l'option d'installation [xls]. Le dépôt liste des options séparées pour [docx], [pptx], [xlsx], [xls], [pdf] et [outlook], ou [all] pour tout installer.
MarkItDown décrit-il les images d'un document Word ?
Le dépôt indique que la description des images par un modèle de langage ne fonctionne pour l'instant que pour les fichiers PowerPoint et les fichiers image.
Sources
Pages consultées pour écrire cet article :