Aplicar varios tipos de formato condicional a Excel con Python

2024-01-25 07:32:49

El formato condicional es una característica de Microsoft Excel que le permite aplicar reglas de formato a celdas según condiciones o criterios específicos. Estas condiciones pueden basarse en valores de celda, fórmulas u otros criterios específicos. El formato condicional le permite cambiar dinámicamente la apariencia de las celdas, como el color de fuente, el color de fondo de la celda, los bordes y las barras de datos, para resaltar o enfatizar visualmente ciertos puntos de datos. En este blog, exploraremos cómo aplicar formato condicional a Excel usando Python.

Analizaremos algunos tipos de reglas de formato condicional de uso común en Excel:

Biblioteca Python para aplicar formato condicional a Excel

Para aplicar formato condicional a archivos de Excel usando Python, necesitamos instalar un módulo de Python que admita esta funcionalidad. En esta publicación de blog, usaremos la biblioteca Spire.XLS for Python, que ofrece un conjunto completo de funciones y propiedades diseñadas específicamente para aplicar reglas de formato condicional a archivos de Excel según varios criterios, como valores de celda, fórmulas y más.

Para instalar Spire.XLS for Python, puede ejecutar el siguiente comando pip:

pip install Spire.XLS

Resaltar reglas de celda

Las reglas para resaltar celdas son un tipo de formato condicional en Excel que le permite resaltar celdas según sus valores. Puede establecer condiciones como mayor que, menor que, igual a, entre y más para determinar qué celdas deben formatearse. Puede elegir opciones de formato como color de fuente, color de fondo y bordes.

A continuación se muestra un ejemplo que muestra cómo resaltar celdas que contienen valores mayores o menores que un valor específico en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the sheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["C2:C11"])

# Create the first condition to highlight cells containing values greater than a specific value
condition1 = conditionalFormat.AddCondition()
condition1.FormatType = ConditionalFormatType.CellValue
condition1.FirstFormula = "90"
condition1.Operator = ComparisonOperatorType.Greater
condition1.BackColor = Color.get_Yellow()

# Create the second condition to highlight cells containing values less than a specific value
condition2 = conditionalFormat.AddCondition()
condition2.FormatType = ConditionalFormatType.CellValue
condition2.FirstFormula = "80"
condition2.Operator = ComparisonOperatorType.Less
condition2.BackColor = Color.get_LightGreen()

# Save the result file
workbook.SaveToFile("HighlightCellRules.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Además de resaltar celdas con valores mayores o menores que un valor específico, Spire.XLS for Python también admite muchas otras opciones, por ejemplo, puede resaltar celdas con valores duplicados o únicos, resaltar celdas con fechas que caen dentro de un período específico período de tiempo y muchos más.

A continuación se muestra un ejemplo que muestra cómo resaltar celdas con valores duplicados o únicos en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["C2:C11"])

# Create the first condition to highlight cells containing duplicate values
condition1 = conditionalFormat.AddCondition()
condition1.FormatType = ConditionalFormatType.DuplicateValues
condition1.BackColor = Color.get_IndianRed()

# Create the second condition to highlight cells containing unique values
condition2 = conditionalFormat.AddCondition()
condition2.FormatType = ConditionalFormatType.UniqueValues
condition2.BackColor = Color.get_Yellow()

# Save the result file
workbook.SaveToFile("HighlightCellRules.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

A continuación se muestra un ejemplo que muestra cómo resaltar celdas con fechas que caen dentro de un período de tiempo específico en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example2.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["B2:B9"])

# Create a condition to highlight cells with dates that fall within a specific time period
condition = conditionalFormat.AddTimePeriodCondition(TimePeriodType.Last7Days)
condition.BackColor = Color.get_Yellow()

# Save the result file
workbook.SaveToFile("HighlightCellRules.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Reglas superiores o inferiores

Las reglas superior/inferior son otro tipo de formato condicional en Excel que le permite resaltar celdas que contienen los valores más altos o más bajos dentro de un rango. Puede especificar la cantidad de valores superiores o inferiores a resaltar y Excel aplicará automáticamente el formato según la regla seleccionada.

A continuación se muestra un ejemplo que muestra cómo resaltar las celdas que contienen los valores mejor o peor clasificados en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["C2:C11"])

# Add the first condition to highlight the top 2 ranked values
condition1 = conditionalFormat.AddTopBottomCondition(TopBottomType.Top, 2)
condition1.BackColor = Color.get_MediumPurple()

# Add the second condition to highlight the bottom 2 ranked values
condition2 = conditionalFormat.AddTopBottomCondition(TopBottomType.Bottom, 2)
condition2.BackColor = Color.get_LightBlue()

# Save the result file
workbook.SaveToFile("TopOrBottomRules.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Además de resaltar las celdas que contienen los valores mejor o peor clasificados, Spire.XLS for Python también es capaz de resaltando celdas con valores por encima o por debajo del valor promedio en Excel. Puede consultar el siguiente ejemplo:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat1 = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat1.AddRange(sheet.Range["C2:C11"])

# Create a condition to highlight cells with values below the average
condition1 = conditionalFormat1.AddAverageCondition(AverageType.Below)
condition1.BackColor = Color.get_SkyBlue()

# Add a conditional format to the worksheet
conditionalFormat2 = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat2.AddRange(sheet.Range["C2:C11"])

# Create a condition to highlight cells with values above the average
condition2 = conditionalFormat2.AddAverageCondition(AverageType.Above)
condition2.BackColor = Color.get_Orange()

# Save the result file
workbook.SaveToFile("HighlightValuesAboveOrBelowAverage.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Barras de datos

Las barras de datos son una representación visual del formato condicional en Excel. Crean barras horizontales dentro de las celdas que representan visualmente los valores relativos de los datos. La longitud de la barra corresponde al valor de la celda, lo que permite una fácil comparación de puntos de datos.

A continuación se muestra un ejemplo que muestra cómo crear barras de datos en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["C2:C11"])

# Add a condition and set its format type to DataBar
condition = conditionalFormat.AddCondition()
condition.FormatType = ConditionalFormatType.DataBar
# Set fill effect for data bars
# condition.DataBar.BarFillType = DataBarFillType.DataBarFillGradient
# Set bar color
condition.DataBar.BarColor = Color.get_SkyBlue()

# Save the result file
workbook.SaveToFile("DataBars.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Escalas de colores

Las escalas de colores son un tipo de formato condicional que aplica gradientes de color a las celdas en función de sus valores. Excel utiliza una gama de colores para representar la distribución de valores dentro de un rango seleccionado de celdas. A los valores más altos se les asigna un color, mientras que a los valores más bajos se les asigna otro color, con sombras intermedias para los valores intermedios. Las escalas de colores proporcionan una representación visual de la distribución de los datos, lo que le permite identificar fácilmente los valores altos y bajos, así como la posición relativa de los valores dentro del conjunto de datos.

A continuación se muestra un ejemplo que muestra cómo crear escalas de color en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["C2:C11"])

# Add a condition and set its format type to ColorScale
condition = conditionalFormat.AddCondition()
condition.FormatType = ConditionalFormatType.ColorScale

# Save the result file
workbook.SaveToFile("ColorScales.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Conjuntos de iconos

Los conjuntos de iconos son un tipo de formato condicional que utiliza iconos visuales, como flechas, símbolos o semáforos, para representar diferentes condiciones o valores dentro de las celdas. Excel proporciona conjuntos predefinidos de iconos que puede aplicar según criterios o rangos de valores específicos. Por ejemplo, puede utilizar iconos de flecha para indicar si los valores aumentan o disminuyen, o utilizar iconos de semáforo para representar el estado de determinadas métricas. Los conjuntos de iconos ofrecen una forma visualmente intuitiva de interpretar y comparar datos en función de los iconos asignados.

A continuación se muestra un ejemplo que muestra cómo crear conjuntos de iconos en Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example3.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["A3:R3"])

# Add a condition and set its format type to IconSet
condition = conditionalFormat.AddCondition()
condition.FormatType = ConditionalFormatType.IconSet
# Set the type of icon sets to ThreeArrows
condition.IconSet.IconSetType = IconSetType.ThreeArrows

# Save the result file
workbook.SaveToFile("IconSets.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Reglas basadas en fórmulas

El formato condicional basado en fórmulas le brinda la flexibilidad de crear reglas personalizadas utilizando fórmulas. Puede definir condiciones complejas utilizando funciones, operadores y referencias de celda. Esto permite un formato altamente personalizado basado en cálculos o comparaciones específicas.

A continuación se muestra un ejemplo que muestra cómo aplicar formato condicional basado en fórmulas a Excel usando Python y Spire.XLS for Python:

  • Python
from spire.xls import *
from spire.xls.common import *

# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Example1.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a conditional format to the worksheet
conditionalFormat = sheet.ConditionalFormats.Add()
# Specify the cell range to apply the conditional format
conditionalFormat.AddRange(sheet.Range["A2:C11"])

# Add a condition and set its format type to Formula
condition = conditionalFormat.AddCondition()
condition.FormatType = ConditionalFormatType.Formula
condition.FirstFormula = "=MOD(ROW(),2)=1"
condition.BackColor = Color.get_LightGray()

# Save the result file
workbook.SaveToFile("FormulaBasedRules.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Apply Various Types of Conditional Formatting to Excel with Python

Obtenga una licencia gratuita

Para experimentar plenamente las capacidades de Spire.XLS para Python sin limitaciones de evaluación, puede solicitar una licencia de prueba gratuita de 30 días.

Conclusión

Este blog explica cómo aplicar diferentes tipos de formato condicional a Excel usando Spire.XLS para Python. Si tiene alguna pregunta, no dude en publicarla en nuestro foro o enviarla a nuestro equipo de soporte por correo electrónico.

Temas relacionados