Cell 에 특정 값이 있는 경우 배경색을 변경하는 방법을 알아봅니다.
배경색을 변경하기 위해서는 Format 을 직접 설정하여 변경이 가능합니다.
하지만 ConditionalFormat 을 등록해 놓으면 자동으로 배경색 처리가 가능해 집니다.
/// <summary>
/// 특정 문자열에 따른 배경색 변경
/// </summary>
public class ColorConditionalFormat : ConditionalFormatAbstractBase
{
/// <summary>
/// 특정 문자열
/// </summary>
private readonly string? TargetText;
/// <summary>
/// ColorConditionalFormat
/// </summary>
/// <param name="targetText"></param>
public ColorConditionalFormat(string targetText)
{
TargetText = targetText;
}
/// <summary>
/// 값에 따라 배경색 변경된 Format 을 반환합니다.
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
/// <param name="sheet"></param>
/// <returns></returns>
public override CellFormat? CalculateFormat(int row, int col, Sheet sheet)
{
var cell = sheet.Cells.GetCell(row, col);
var value = cell.GetValue<string>();
if (value == null)
return null;
if (value.ToUpper() == TargetText.ToUpper())
{
var changeFormat = cell.Format.Clone();
changeFormat.BackgroundColor = "lightgreen";
return changeFormat;
}
else
{
return null;
}
}
}
위 코드를 보면 알수 있듯이 TargetText 과 값이 같으면 기존 format 을 clone 하여 배경색을 변경 후 반환합니다.
기존 format 을 clone 하는 이유는 기존에 설정된 format 을 유지 하기 위함입니다.
아래처럼 화면에서 사용합니다.
var colorConditionalFormat = new ColorConditionalFormat("Laptop");
sheet.ConditionalFormats.Apply(new ColumnRegion(1), colorConditionalFormat);
결과
Laptop 인 경우 배경색이 변경된걸 확인할 수 있습니다.
MudBlazor.Extensions 사용하기 - MudExSplitter (0) | 2025.03.24 |
---|---|
MudBlazor.Extensions 사용하기 - Dialog Drag (0) | 2025.03.24 |
BlazorDatasheet 에서 특정 문자 입력 방지하기 (0) | 2025.03.22 |
MudBlzaor MudTextField 언더라인 제거하기 (delete underline) (0) | 2025.03.19 |
MudBlzaor MudDataGrid Header 가운데 정렬 및 배경색 변경하기 (0) | 2025.03.19 |