Gérer les fichiers Word, Excel et TXT avec Python

1. Introduction

Pour manipuler les documents Word, Excel et TXT en Python, nous utilisons les bibliothèques python-docx et openpyxl. Voici comment les installer :


pip install python-docx
pip install openpyxl

python-docx permet la lecture et l'écriture de documents Word, tandis qu'openpyxl gère les fichiers Excel 2010 (xlsx, xlsm, xltx, xltm).

2. Traitement des fichires Excel

Importation de la bibliothèque


import openpyxl

Création de l'objet classeur


mon_classeur = openpyxl.load_workbook('donnees.xlsx')
# Accéder à la feuille par son nom : ma_feuille = mon_classeur["Feuil1"]
ma_feuille = mon_classeur.active  # Feuille active par défaut

Lecture de données


valeur_cellule = ma_feuille.cell(row=1, column=2).value

Écriture de données


ma_feuille.cell(row=1, column=2).value = "Nouvelle valeur"

Ajout d'une feuille


nouvelle_feuille = mon_classeur.create_sheet(title="Feuille supplémentaire")

Fermeture du classeur


mon_classeur.close()

Personnnalisation des styles


from openpyxl.styles import Font, Alignment, Border, Side

style_police = Font(name="Arial", size=10)
style_alignement = Alignment(horizontal='left', vertical='top', wrap_text=True)
cote = Side(style="dashed")
style_bordure = Border(top=cote, bottom=cote, left=cote, right=cote)

# Appliquer à une cellule
ligne, colonne = 2, 3
ma_feuille.cell(ligne, colonne).font = style_police
ma_feuille.cell(ligne, colonne).alignment = style_alignement
ma_feuille.cell(ligne, colonne).border = style_bordure

3. Manipulation des documents Word


from docx import Document

# Charger un document Word
chemin_fichier = "rapport.docx"
document_word = Document(chemin_fichier)

# Parcourir le contenu
for element in document_word.element.body:
    if element.tag.endswith('}p'):  # Paragraphe
        texte = element.text
        print("Paragraphe détecté:", texte)
    elif element.tag.endswith('}tbl'):  # Tableau
        print("Tableau trouvé")
        # Logique supplémentaire pour les tableaux

Traitement des paragraphes


def analyser_paragraphe(para):
    if para.style and 'Titre' in para.style.name:
        print(f"Titre: {para.text}")
    else:
        print(f"Texte: {para.text}")

Traitement des tableaux


def extraire_donnees_tableau(tableau):
    for ligne in tableau.rows:
        for cellule in ligne.cells:
            print(cellule.text)

4. Gestion des fichiers texte

Les fichiers TXT, JSON, INI sont traités de manière similaire.

Ouverture et lecture


chemin_txt = "donnees.txt"
with open(chemin_txt, 'r', encoding='utf-8') as fichier:
    contenu = fichier.read()
    print(contenu)

Écriture dans un ficheir


with open("sortie.txt", 'w', encoding='utf-8') as fichier_ecriture:
    fichier_ecriture.write("Ligne de texte ajoutée\n")

Lecture ligne par ligne


with open("config.ini", 'r', encoding='utf-8') as config:
    for ligne in config:
        print(ligne.strip())

Utilisez toujours le bloc with pour garantir la fermeture automatique du fichier, même en cas d'erreur.

Étiquettes: python-docx openpyxl manipulation de documents fichiers Excel fichiers Word

Publié le 26 juin à 20h28