Programación

Aplicar formato condicional en excel con C#

Si necesitas aplicar color al texto o a la celda en sí de acuerdo a una condicional. Tal vez la primera idea que se te venga es lo siguiente

for (int i = 0; i < rangoColumna.Cells.Count; i++)
{
    if (rangoColumna.Cells[i, 1] == "VALOR")
    {
        Range currCell = rangoColumna.Cells[i, 1];
        currCell.Font.Color =  ColorTranslator.ToOle(Color.Red);
    }
}

Pero siempre hay una forma simple en este hermoso mundo de la programación.

string rangoColumna = "A1:B10"; // Rango de celdas al que quieres aplicar
FormatCondition formatoCondicional = (FormatCondition)excel.worksheet.get_Range(rangoColumna).FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlEqual, "VALOR");
formatoCondicional.Interior.Color = ColorTranslator.ToOle(Color.SteelBlue);
formatoCondicional.Font.Color = ColorTranslator.ToOle(Color.White);

Claro, pero tu me dirás – Pero ese código no se entiende mucho.

Sí, es un poco confuso.

Sin embargo de esta manera aprovechas mejor el tiempo que demora en generar tu archivo excel y puedes aplicar mas condiciones. Solo tienes que repetir el mismo código cambiando el valor de la condicional. Podrías poner dentro de una función.

Si ves el código anterior, este linea de código indica que tipo de condicional quieres aplicar. Puedes verlo tu mismo.

XlFormatConditionOperator.xlEqual

Si quieres probrar el código no olvides de importar el espacio de nombre

Microsoft.Office.Interop.Excel

Desarrollador, Consultor, Arquitecto de Software, con mas de 3 años de experiencia. Certificado por Microsoft como especialista en .NET Interesado en la innovación y preocupado por la calidad del servicio.