Apply Conditional Formatting in Worksheet

Possible Usage Scenario

Aspose.Cells allows you to add all sorts of Conditional Formatting e.g. Formula, Above Average, Color Scale, Data Bar, Icon Set, Top10, etc. It provides the FormatCondition class which has all the necessary methods to apply conditional formatting of your choice. Here is the list of a few of Get methods.

Apply Conditional Formatting in Worksheet

The following sample code shows how to add a Cell Value conditional formatting on cells A1 and B2. Please see the output excel file generated by the code and the following screenshot which explains the effect of the code on the output excel file. If you will put some value greater than 100 in cell A2 and B2, the Red fill color from cell A1 and B2 will disappear.

todo:image_alt_text

Sample Code

Aspose::Cells::Startup();
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Path of input
U16String dirPath(u"");
//Path of output
U16String outPath(u"");
//Path of output excel file
U16String outputApplyConditionalFormattingInWorksheet = outPath + u"outputApplyConditionalFormattingInWorksheet.xlsx";
//Create an empty workbook
Workbook wb;
//Access first worksheet
Worksheet ws = wb.GetWorksheets().Get(0);
//Adds an empty conditional formatting
int idx = ws.GetConditionalFormattings().Add();
FormatConditionCollection fcs = ws.GetConditionalFormattings().Get(idx);
//Set the conditional format range
CellArea ca = CellArea::CreateCellArea(u"A1", u"A1");
fcs.AddArea(ca);
ca = CellArea::CreateCellArea(u"B2", u"B2");
fcs.AddArea(ca);
//Add condition and set the background color
idx = fcs.AddCondition(FormatConditionType::CellValue, OperatorType::Between, u"=A2", u"100");
FormatCondition fc = fcs.Get(idx);
fc.GetStyle().SetBackgroundColor(Color{ 0xff,0xff ,0 ,0 });//Red
//User friendly message to test the output excel file.
U16String msgStr = u"Red color in cells A1 and B2 is because of Conditional Formatting. Put 101 or any value >100 in cell A2 and B2, you will see Red background color will be gone.";
ws.GetCells().Get(u"A10").PutValue(msgStr);
//Save the output excel file
wb.Save(outputApplyConditionalFormattingInWorksheet);
Aspose::Cells::Cleanup();