Estoy escribiendo una secuencia de comandos python para leer datos de una hoja de Excel usando xlrd. Pocas de las celdas de la hoja de trabajo están resaltadas con diferentes colores y quiero identificar el código de color de la celda. Hay alguna forma de hacer eso ? Un ejemplo sería realmente apreciado.Identificación del código de color de la celda de la hoja de Excel usando el paquete XLRD
26
A
Respuesta
32
Aquí es una manera de manejar esto:
import xlrd
book = xlrd.open_workbook("sample.xls", formatting_info=True)
sheets = book.sheet_names()
print "sheets are:", sheets
for index, sh in enumerate(sheets):
sheet = book.sheet_by_index(index)
print "Sheet:", sheet.name
rows, cols = sheet.nrows, sheet.ncols
print "Number of rows: %s Number of cols: %s" % (rows, cols)
for row in range(rows):
for col in range(cols):
print "row, col is:", row+1, col+1,
thecell = sheet.cell(row, col)
# could get 'dump', 'value', 'xf_index'
print thecell.value,
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
print bgx
Más información sobre la Python-Excel Google Group.
1
Esta función devuelve el valor de rgb del fondo de celda en tupla.
def getBGColor(book, sheet, row, col):
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
pattern_colour = book.colour_map[bgx]
#Actually, despite the name, the background colour is not the background colour.
#background_colour_index = xf.background.background_colour_index
#background_colour = book.colour_map[background_colour_index]
return pattern_colour
Cuestiones relacionadas
- 1. Cambiando el color de la celda de la hoja de Excel a través de VB.NET
- 2. Devuelve el color de fondo de la celda seleccionada
- 3. Excel VBA: obtener el valor de la celda, independientemente del formato de la celda
- 4. llamando a la función de hoja de cálculo excel desde la celda excel
- 5. Cambio de color de celda En Excel usando C#
- 6. python xlrd recibiendo flotación desde la celda de texto de Excel
- 7. Excel: reemplazar parte del valor de cadena de la celda
- 8. ¿Cómo limitar el valor de la celda en Excel a las opciones de otra hoja?
- 9. ¿Cómo detectar si una celda está vacía al leer archivos de Excel utilizando la biblioteca xlrd?
- 10. Error al leer la hoja de Excel usando Java
- 11. Lectura de archivos de Excel con xlrd
- 12. Fuerza de actualización de celda "último" de la Hoja de
- 13. Cómo cambiar el color de fondo de la celda en la tabla usando el script java
- 14. Agregar texto a la hoja de Excel usando C#
- 15. Lista desplegable en la celda de Excel
- 16. Cómo obtener propiedades de celda de Excel en Python
- 17. Fórmula de Excel para verificar el contenido de la celda
- 18. ¿Cómo usar el relleno para el color de fondo de una celda excel usando C#?
- 19. ¿Cómo cambiar el color de fondo de la celda excel con la biblioteca python xlwt?
- 20. Excel: Conjunto color de fondo de la celda con el valor RGB de los datos en la celda
- 21. Ajuste Texto de la celda de color
- 22. Cambiar el color de la celda JTable
- 23. Copiar hoja de Excel usando Apache POI
- 24. Cómo agregar la hoja de gráfico en Excel usando C#
- 25. Convertir el valor de celda de Excel de texto a número usando C#
- 26. hacer celda de color en el archivo csv para Excel
- 27. Cambiar el color de la celda en Excel de acuerdo con el valor desplegable adyacente
- 28. ¿Falló la aplicación de la verificación del código de identificación?
- 29. sombra de UILabel del color seleccionado de la celda personalizada
- 30. WPF datagrid Color de la celda según el valor de la celda preivous
El script es capaz de identificar el código de color. Pero ahora estoy recibiendo un problema diferente. La hoja de Excel que estoy analizando tiene dos celdas vacías sin formato o color extra, es decir, ambas celdas tienen fondo blanco y no hay texto adentro, en la posición - (52,4) y (9,4). En el primer caso, el color es 64 y el del otro es 9. ¿En qué se diferencia el código de color de dos tipos de células similares? – Kinjal
¿Estás seguro de que no tienes un 'blank' y otro' no fill'? – JMax
El índice de color 9 significa blanco a menos que se haya cambiado la paleta. 61 es un índice de color de "sistema"; lea la sección sobre índices de color cerca del comienzo de los documentos xlrd. "vacío", "blanco" y "sin texto dentro" son vagos. Cuéntanos la celda ** tipo **, valor y xf_index. Use 'repr (valor)'. Puede tener el formato predeterminado aplicado a la columna 4; ¿Qué le proporciona 'sheet.colinfo_map [4] .xf_index'? –