Hoy voy a explicar cómo traducir un archivo xlsx a otro idioma, en este caso una hoja de cálculo a inglés.
Usaré Python 3.8 y lo primero que necesitamos es instalar los siguientes paquetes xlrd, xlwt y googletrans con: pip install xlrd xlwt googletrans
El proceso es el siguiente, con xlrd
leeremos el archivo test.xlsx, con xlwt
crearemos y guardaremos el archivo test2.xlsx mientras que con googletrans
traduciremos cada celda de tipo string
.
El código es el siguiente, leemos cada nueva hoja del documento y se crea una igual en el nuevo documento, leemos cada celda y si es de tipo str (texto o string) lo traducimos y guardamos en la misma posición y al final guardamos el nuevo documento.
#!/usr/bin/env python3
import xlrd
from xlwt import Workbook
from googletrans import Translator
translator = Translator()
# Archivo origen
location1 = (r'/home/user/Documents/test.xlsx')
# Archivo traducido
location2 = (r'/home/user/Documents/test2.xlsx')
# nuevo idioma
lang='en'
wb_w = Workbook()
wb_r = xlrd.open_workbook(location1)
# Obtenemos las hojas en el archivo original
for sheet in wb_r.sheets():
# imprimimos el nombre de la hoja
print(sheet.name)
# creamos una hoja nueva en el nuevo documento
sheetw = wb_w.add_sheet(sheet.name)
for column in range(sheet.nrows):
for row in range(sheet.ncols):
# obtenemos el valor de la celda
value = sheet.cell_value(column, row)
# si es de tipo str lo traducimos
if type(value) == str:
value = translator.translate(value, dest=lang).text
if value:
print(value)
sheetw.write(column, row, value)
# creamos el nuevo documento traducido
wb_w.save(location2)
Nombraremos al archivo como xlsx-translate.py
y de paso le damos permisos de ejecución chmod +x xlsx-translate.py
y para ejecutarlo ./xlsx-translate.py
Al finalizar la ejecución tendremos un nuevo archivo text2.xlsx
con el contenido traducido.
* Este método solo traduce el contenido de las celdas y no copia formatos, colores, funciones, …
0 comentarios