Cómo traducir documentos de Excel utilizando Python y ChatGPT: Guía paso a paso

Introducción
Existen muchas herramientas de traducción disponibles. Sin embargo, no todas ofrecen resultados satisfactorios. Por esto es que ChatGPT nos gusta tanto.
ChatGPT ha sido creado por OpenAI. Es más que una herramienta común. Destaca en muchas tareas, en especial en la traducción. Frecuentemente, sus traducciones son comparables a las realizadas por profesionales.
Por cierto, tú puedes use our service for easy translations. Solo tienes que subir tu archivo de Excel. Nuestro sitio lo traducirá por ti. Una vez finalizado, descarga tu archivo. El formato permanecerá intacto.
Pero, ¿cómo podemos utilizar ChatGPT y Python para traducir archivos de Excel por nuestra cuenta? En este blog, te explicaremos cómo hacerlo paso a paso. Queremos asegurar que tus traducciones sean rápidas y de la más alta calidad.
Prerrequisitos
Antes de comenzar, necesitarás algunas cosas:
- Conocimientos Básicos de Python Este artículo incluirá algo de programación. Es bueno que tengas nociones básicas de Python. Pero no te preocupes, lo explicaremos todo.
- Python Asegúrate de que Python esté instalado en tu ordenador. Si no lo está, puedes descargarlo desde la página oficial.
- pip Esta herramienta te facilita la instalación de librerías de Python. Si instalaste Python3, seguramente ya cuentes con pip.
- Clave de API de GPT-4 de OpenAI Para utilizar ChatGPT para traducción, necesitarás esta clave. Si no la tienes, visita la web de OpenAI para conseguirla.
- Tu Archivo Excel Prepára el archivo Excel que deseas traducir.
Echando un vistazo dentro de un archivo Excel
Cuando guardas una hoja de cálculo en Excel con la extensión .xlsx, lo que haces en realidad es empaquetar varios archivos en uno solo. Este formato de archivo se conoce como OpenXML. Si alguna vez has sentido curiosidad por cómo es un archivo Excel por dentro, descomprimámoslo y observemos:
1. Carpeta de Hojas de Cálculo (xl/worksheets/):
Dentro de esta carpeta, encontrarás un archivo XML para cada hoja de cálculo en tu archivo de Excel. Por lo tanto, si tienes tres pestañas o hojas en tu libro de trabajo, hallarás sheet1.xml, sheet2.xml y sheet3.xml aquí.
Cada uno de estos archivos XML representa las filas, columnas y celdas de su correspondiente hoja. Aquí es donde reside realmente tu información.
2. Estilos (xl/estilos.xml):
Este archivo XML actúa como el diseñador de moda de tus datos de Excel. Incluye las definiciones para todos los estilos utilizados en tu libro de trabajo.
Si alguna vez te has preguntado cómo Excel recuerda qué celdas están en azul, qué textos están en negrita o qué números están formateados como moneda, está todo definido aquí.
3. Cadenas Compartidas (xl/sharedStrings.xml):
Para ahorrar espacio y aumentar la eficiencia del archivo, Excel sitúa todas las cadenas de texto únicas utilizadas en tus hojas de cálculo en este archivo.
Por ejemplo, si tuvieras la palabra "Total" repetida 1,000 veces en tu libro de trabajo, se guarda únicamente una vez aquí y luego se hace referencia a ella dondequiera que se utilice.
4. Estructura del Libro de Trabajo (xl/workbook.xml):
Considéralo como el índice de contenidos para tu archivo de Excel.
Describe la estructura del libro de trabajo, detallando aspectos tales como qué hojas están incluidas, el orden de las mismas, e incluso ciertas propiedades como la protección de las hojas.
Cuando trabajas con herramientas como openpyxl, estos detalles suelen estar ocultos, lo que te permite manipular los datos de Excel de un modo más intuitivo. No obstante, comprender esta estructura puede brindar entendimientos importantes, en especial si buscas realizar operaciones avanzadas o solucionar problemas.
Leer y Escribir Documentos de Excel con openpyxl
openpyxl es una biblioteca de Python diseñada especialmente para leer y escribir archivos de Excel (tanto .xlsx como .xlsm). Te permite trabajar directamente con las hojas y celdas de Excel.
A continuación, cómo iniciar:
1. Instalar openpyxl
Si aún no lo has hecho, instala openpyxl utilizando pip:
pip install openpyxl
2. Fundamentos de Excel con openpyxl
Para trabajar de forma efectiva con openpyxl, es beneficioso comprender algunos conceptos fundamentales de Excel y cómo se traducen en operaciones con openpyxl:
A. Libro de trabajo: Cuando hablamos de un archivo Excel, nos referimos a un Libro de trabajo. En openpyxl, puedes considerar el libro de trabajo como el archivo principal con el que estás trabajando.
from openpyxl import load_workbook
# Loading an existing workbook
workbook = load_workbook(filename="sample.xlsx")
B. Hoja: Un libro de trabajo contiene hojas individuales, que son como páginas de un libro. Cada hoja almacena tus datos en formato de tabla. Con openpyxl, puedes acceder a la hoja activa o a cualquier hoja por su nombre.
# Getting the active sheet
sheet = workbook.active
# Accessing a sheet by name
another_sheet = workbook["Sheet2"]
C. Celda: Las hojas están compuestas de filas y columnas. Donde una fila y una columna se cruzan, tienes una celda. Ahí es donde se encuentran tus datos. openpyxl te permite leer y escribir datos desde y hacia estas celdas.
# Reading the value from cell A1
cell_value = sheet["A1"].value
# Writing to cell B1
sheet["B1"] = "Hello, Excel!"
D. Fila y Columna: En Excel, las filas se extienden horizontalmente y están numeradas, mientras que las columnas se extienden verticalmente y se identifican con letras. openpyxl ofrece métodos intuitivos para recorrerlas.
# Iterating through rows
for row in sheet.iter_rows(values_only=True):
for value in row:
print(value)
3. Lectura y edición del archivo de 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')
En el código anterior, reemplaza "TRANSLATION_METHOD_HERE" con el método que utilizarás para traducir texto utilizando ChatGPT. Este procedimiento recorrerá cada celda del libro. Si una celda contiene texto, este se traducirá.
Traducción con ChatGPT
Tras cargar tus datos de Excel con openpyxl, el próximo paso es traducir el contenido utilizando ChatGPT. Aquí tienes una guía paso a paso:
1. Instala el cliente de Python de OpenAI:
Este cliente nos permite interactuar con ChatGPT y obtener traducciones.
pip install openai
2. Configuración de la Traducción con 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
Por supuesto, si lo prefieres, puedes cambiar fácilmente ChatGPT por DeepL o cualquier otro servicio de traducción. La belleza de la función de traducción radica en su simplicidad, que permite una integración flexible con diversas herramientas de traducción.
3. Integrar la Traducción con la Iteración en Excel:
Ahora, integra esta función de traducción con el código de openpyxl anterior. Para cada celda que contenga texto, llama a translate_text para obtener su traducción.
# ... (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. Recuerda los costos de tu API:
Ten en cuenta que traducir archivos grandes de Excel puede resultar en una cantidad significativa de llamadas a la API, lo que podría ser costoso. Supervisa siempre tu uso para evitar cargos inesperados.
Código Completo: Traducción de Excel a Francés con ChatGPT y openpyxl
Con este código, puedes traducir rápidamente textos en inglés de un archivo Excel al francés. Utilizaremos el poder de ChatGPT para la traducción y openpyxl para el manejo del archivo Excel. ¡Comencemos!
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')
## Conclusión
Utilizando ChatGPT y openpyxl, hemos creado una herramienta simple para traducir textos en inglés en Excel a idiomas como el francés, el japonés y el alemán. Aunque nuestro ejemplo destacó el francés, puedes adaptar este método para cualquier idioma que ChatGPT soporte. Todo el proceso es increíblemente sencillo, requiriendo solo unas 30 líneas de código.
Asimismo, puedes utilizar nuestro sitio web para realizar traducciones de manera fácil. Solo tienes que subir tu archivo Excel y nosotros lo traduciremos por ti. Una vez finalizado, descarga tu archivo. ¡Simple y rápido!
```## Preguntas Frecuentes (FAQs) y Soluciones
¿Qué ocurre si recibo un error relacionado al límite de la API?
Respuesta: La plataforma de OpenAI tiene ciertos límites de tasa en función del tipo de cuenta que poseas. Si te encuentras con un error por límite de tasa, tal vez necesites agregar un retraso en tu script entre las llamadas de traducción o considerar la posibilidad de mejorar tu cuenta de OpenAI a un nivel superior.
¿Cómo puedo traducir de manera simultánea a varios idiomas?
Respuesta: Puedes modificar el código para que recorra una lista de lenguas objetivos. Para cada celda, puedes realizar múltiples llamadas a la función de traducción para cada idioma y guardar los resultados en distintas hojas de Excel o archivos.
¿Existe algún costo asociado al uso de ChatGPT para traducir?
Respuesta: Sí, emplear la API de OpenAI puede conllevar algunos costes asociados, dependiendo del uso y del plan de suscripción que tengas. Es importante que monitorices tu uso para evitar facturas inesperadas.
Este artículo se centra principalmente en cómo traducir archivos de Excel. Si quieres utilizar Python y ChatGPT para traducir documentos de Word, puedes consultar [Automating Word Document Translation with Python and ChatGPT](/es/articles/automating-word-document-translation-with-python-and-chatgpt).