Saltar al contenido

Python: openpyxl cómo leer el color de la fuente de una celda

Solución:

Creo que esto es un error en openpyxl y creo que deberías informarlo aquí.

Depurando el siguiente código (con trepan3k por supuesto):

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
c = ws['A4']  # cell gets created here
print(ws['A4'].font.color)

Yo obtengo:

Color(rgb=Value must be type 'str', indexed=Value must be type 'int', auto=Value must be type 'bool', theme=1, tint=0.0, type="theme")

y esto viene de _repr_ () de clase Mecanografiado () en archivo openpyxl/descriptors/base.py. Este mensaje se da cuando no se ha inicializado un valor. Tenga en cuenta que “indexado” y “automático” tampoco se han configurado.

Pero estos presumiblemente deberían haberse establecido cuando el código para el acceso de ws['a4'] se realizó.

Nota: la ligera diferencia en el mensaje: ‘str’ en lugar de ‘basetring’ probablemente se deba al hecho de que estaba usando Python 3 o menos probablemente openpyxl 2.2.3

Y si hay algún otro código adicional que debería haber agregado en mi ejemplo, entonces al menos https://openpyxl.readthedocs.org/en/latest/index.html debería indicarlo.

Consulte también el estilo de celda openpyxl que no informa correctamente cuando uno de los desarrolladores parece decir lo mismo con tantas palabras.

Editar:

Puede ser interesante tener en cuenta un par de otras cosas. Primero, puedes colocar un valor y luego leerlo, por ejemplo, puede hacer esto:

c.font.color.rgb = "FF000000"

En segundo lugar, si prueba c.font.color.rgb en un booleano, parecerá que se ha establecido un valor. Es decir

if c.font.color: print("yes")

imprimirá “sí”.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *