Comment traduire des documents Excel en utilisant Python et ChatGPT : Un guide étape par étape

Translate Excel ChatGPT## Introduction

Il existe de nombreux outils de traduction. Cependant, tous ne fournissent pas de bons résultats. C'est pour cette raison que nous apprécions tant ChatGPT.

ChatGPT est développé par OpenAI. C'est bien plus qu'un simple outil. Il est particulièrement doué pour de nombreuses tâches, et surtout pour la traduction. Souvent, ses traductions peuvent rivaliser avec celles des professionnels.

D'ailleurs, vous pouvez use our service for easy translations. Il suffit de téléverser votre fichier Excel. Notre site s'occupera de la traduction pour vous. Une fois celle-ci terminée, vous pourrez télécharger votre fichier. Le format restera inchangé.

Mais comment pouvons-nous utiliser ChatGPT et Python pour traduire des fichiers Excel par nous-mêmes ? Dans ce blog, nous vous expliquerons comment procéder étape par étape. Nous tenons à ce que vos traductions soient rapides et de la plus haute qualité.

Prérequis

Avant de débuter, voici quelques éléments dont vous aurez besoin :

  • Connaissances de base en Python Cet article impliquera un peu de programmation. C'est un plus si vous avez des connaissances de base en Python. Mais ne vous inquiétez pas, nous allons tout expliquer.
  • Python Vérifiez que Python est installé sur votre machine. Sinon, vous pouvez le télécharger depuis le site officiel.
  • pip Il s'agit d'un outil qui facilite l'installation de librairies Python. Si vous avez installé Python3, vous disposez probablement déjà de pip.
  • Clé API de GPT-4 d'OpenAI Pour utiliser ChatGPT pour la traduction, il vous faut cette clé. Si vous n'en possédez pas, rendez-vous sur le site d'OpenAI pour l'obtenir.
  • Votre fichier Excel Préparez le fichier Excel que vous souhaitez traduire.

Jetant un œil à l'intérieur d'un fichier Excel

Lorsque vous enregistrez un classeur dans Excel avec l'extension .xlsx, ce que vous faites en réalité, c'est rassembler plusieurs fichiers en un seul. Ce format de fichier est appelé OpenXML. Si vous avez déjà eu la curiosité de comprendre le fonctionnement interne d'un fichier Excel, ouvrons-le avec une décompression et regardons ce qu'il contient :

1. Dossier des feuilles de calcul (xl/worksheets/) :

Dans ce dossier, vous trouverez un fichier XML pour chacune des feuilles de votre fichier Excel. Ainsi, si vous aviez trois onglets ou feuilles dans votre classeur, vous découvrirez sheet1.xml, sheet2.xml et sheet3.xml ici.

Chaque fichier XML correspond aux lignes, aux colonnes et aux cellules de la feuille concernée. C'est là que se trouvent vos données réelles.

2. Styles (xl/styles.xml) :

Ce fichier XML fait office de styliste pour vos données Excel. Il inclut les définitions de tous les styles utilisés dans votre classeur.

Si vous vous êtes déjà demandé comment Excel se rappelle quelles cellules sont bleues, quels textes sont en gras ou quels nombres sont formatés en devise, tout est indiqué ici.

3. Chaînes Partagées (xl/sharedStrings.xml) :

Afin d'économiser de l'espace et d'optimiser l'efficacité du fichier, Excel regroupe toutes les chaînes de caractères uniques (textes) utilisées dans vos différentes feuilles de calcul dans ce fichier.

Par exemple, si le mot "Total" se répétait 1 000 fois dans l'ensemble de votre classeur, il serait stocké une seule fois ici, puis référencé partout où il apparaît.

4. Structure du classeur (xl/workbook.xml) :

Considérez ceci comme la table des matières de votre fichier Excel.

Cela décrit la structure du classeur, en détaillant des éléments tels que les feuilles présentes, leur ordre, et même certaines propriétés comme la protection des feuilles.

Lorsque vous utilisez des outils tels qu'openpyxl, ces détails sont pour la plupart masqués, ce qui vous permet de travailler avec les données Excel de manière plus intuitive. Cependant, comprendre cette structure peut apporter des éclaircissements, surtout si vous souhaitez effectuer des opérations avancées ou résoudre des problèmes.

Lire et écrire des documents Excel avec openpyxl

openpyxl est une bibliothèque Python conçue spécialement pour lire et écrire des fichiers Excel (aussi bien les .xlsx que les .xlsm). Elle vous permet de travailler directement avec les feuilles et les cellules Excel.

Voici comment débuter :

1. Installer openpyxl

Si vous ne l'avez pas encore fait, installez openpyxl en utilisant pip :

pip install openpyxl

2. Notions de base d’Excel avec openpyxl

Pour être efficace avec openpyxl, il est utile de comprendre certains concepts fondamentaux d’Excel et la manière dont ils se traduisent en opérations avec openpyxl :

A. Classeur: Lorsque nous évoquons un fichier Excel, c’est en fait un Classeur. Avec openpyxl, vous pouvez considérer le classeur comme le fichier principal sur lequel vous travaillez.

from openpyxl import load_workbook
# Loading an existing workbook
workbook = load_workbook(filename="sample.xlsx")

B. Feuille: Un classeur contient différentes feuilles, semblables à des pages d’un livre. Chaque feuille organise vos données dans un format tabulaire. Avec openpyxl, vous pouvez accéder à la feuille active ou n’importe quelle feuille en utilisant son nom.

# Getting the active sheet
sheet = workbook.active
# Accessing a sheet by name
another_sheet = workbook["Sheet2"]

C. Cellule: Les feuilles sont constituées de lignes et de colonnes. À l’intersection d’une ligne et d’une colonne se trouve une cellule. C’est là que se trouvent vos données. openpyxl vous permet de lire et d’écrire des données dans ces cellules.

# Reading the value from cell A1
cell_value = sheet["A1"].value
# Writing to cell B1
sheet["B1"] = "Hello, Excel!"

D. Ligne et Colonne: Sur Excel, les lignes sont disposées horizontalement et numérotées, tandis que les colonnes sont verticales et identifiées par des lettres. openpyxl offre des méthodes intuitives pour itérer à travers celles-ci.

# Iterating through rows
for row in sheet.iter_rows(values_only=True):
    for value in row:
        print(value)

3. Lecture et modification du fichier Excel

from openpyxl import load_workbook
 
# Load the workbook and select the active sheet
workbook = load_workbook(filename='your_file.xlsx')
 
# Loop through all sheets
for sheet in workbook:
    # Loop through all rows and columns in the sheet
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            # Check if the cell contains text
            if isinstance(original_text, str):
                # Replace with your ChatGPT translation method
                translated_text = TRANSLATION_METHOD_HERE(original_text)
                cell.value = translated_text
 
# Save the changes to the same file
workbook.save('your_file.xlsx')

Dans le code ci-dessus, remplacez "TRANSLATION_METHOD_HERE" par la méthode que vous allez utiliser pour traduire le texte en utilisant ChatGPT. Cette méthode examinera chaque cellule du classeur. Si une cellule contient du texte, celui-ci sera traduit.

Traduire avec ChatGPT

Après avoir chargé vos données Excel avec openpyxl, l'étape suivante consiste à traduire le contenu à l'aide de ChatGPT. Voici un guide étape par étape :

1. Installez le client Python d'OpenAI :

Ce client permet d'interagir avec ChatGPT et d'obtenir des traductions.

pip install openai

2. Configurer la traduction ChatGPT :

import openai
 
# Initialize the OpenAI API with your key
# openai.api_key = 'YOUR_OPENAI_API_KEY'
 
def translate_text(text, target="en"):
    content = "Translate the following text to " + target + ": " + text
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": content}]
    )
 
    return response.choices[0].message.content

Évidemment, si vous le souhaitez, il vous est tout à fait possible de remplacer ChatGPT par DeepL ou un autre service de traduction. L'atout de la fonction de traduction réside dans sa simplicité, offrant une intégration souple avec de multiples outils de traductions.

3. Intégration de la traduction avec l'itération dans Excel :

À présent, fusionnez cette fonction de traduction avec le code openpyxl précédent. Pour chaque cellule qui contient du texte, faites appel à la fonction translate_text afin d'obtenir sa traduction.

# ... (Your openpyxl code to read the Excel file)
 
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            if isinstance(original_text, str):
                # Replace 'TARGET' with desired language code
                translated_text = translate_text(original_text, "TARGET")
                cell.value = translated_text
 
workbook.save('your_translated_file.xlsx')

4. N'oubliez pas vos coûts d'API :

Sachez que la traduction de gros fichiers Excel peut entraîner un nombre important d'appels API, ce qui pourrait s'avérer onéreux. Assurez-vous de surveiller votre consommation pour éviter des frais imprévus.

Code Complet : Traduction de l'Excel en Français avec ChatGPT et openpyxl

Avec ce code, vous pouvez traduire rapidement un texte anglais dans un fichier Excel en français. Nous allons utiliser la puissance de ChatGPT pour la traduction et openpyxl pour gérer le fichier Excel. Commençons !

from openpyxl import load_workbook
import openai
 
# Initialize the OpenAI API with your key
openai.api_key = 'YOUR_OPENAI_API_KEY'
 
def translate_text(text, target="fr"):
    content = "Translate the following text to " + target + ": " + text
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": content}]
    )
 
    return response.choices[0].message.content
 
# Load the workbook and select the active sheet
workbook = load_workbook(filename='your_file.xlsx')
 
# Loop through all sheets
for sheet in workbook:
    # Loop through all rows and columns in the sheet
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            # Check if the cell contains text
            if isinstance(original_text, str):
                translated_text = translate_text(original_text)
                cell.value = translated_text
 
# Save the changes to the same file
workbook.save('your_translated_file.xlsx')

Conclusion

En utilisant ChatGPT et openpyxl, nous avons créé un outil simple permettant de traduire des textes anglais dans Excel vers des langues telles que le français, le japonais et l'allemand. Bien que notre exemple mette en avant le français, vous pouvez adapter cette méthode à toute langue prise en charge par ChatGPT. L'ensemble du processus est remarquablement direct, et ne nécessite qu'environ 30 lignes de code.

De plus, vous pouvez utiliser notre site web pour des traductions aisées. Il suffit de charger votre fichier Excel et nous nous chargerons de la traduction pour vous. Une fois terminée, téléchargez votre fichier. C'est simple et rapide !

Questions Fréquemment Posées (FAQ) et Solutions

Que faire si je reçois une erreur liée à la limite de l'API ?

Réponse : La plateforme OpenAI impose certaines limitations de fréquence selon le type de votre compte. Si vous vous heurtez à une erreur de dépassement de limite, il pourrait être nécessaire d'insérer un délai dans votre script entre les appels de traduction ou d'envisager de passer à un abonnement OpenAI de niveau supérieur.

Comment puis-je traduire simultanément dans plusieurs langues ?

Réponse : Vous pouvez modifier le code pour itérer sur une liste de langues cibles. Pour chaque cellule, vous pourriez appeler la fonction de traduction plusieurs fois pour chacune des langues et enregistrer les résultats dans des feuilles Excel ou dans des fichiers distincts.

Existe-t-il un coût associé à l'utilisation de ChatGPT pour la traduction ?

Réponse : Oui, l'utilisation de l'API OpenAI peut engendrer certains frais, qui varieront selon votre usage et votre plan d'abonnement. Il est recommandé de surveiller régulièrement votre consommation pour prévenir toute facture surprise.

Cet article aborde en priorité la traduction de fichiers Excel. Si vous souhaitez utiliser Python et ChatGPT pour traduire des documents Word, vous pouvez consulter Automating Word Document Translation with Python and ChatGPT.