Применение Условного Форматирования в Листе
Возможные сценарии использования
Aspose.Cells позволяет добавлять все виды условного форматирования, например Формула, Выше среднего, Цветовая шкала, Полоса данных, Набор значков, Топ-10 и т. д. Он предоставляет класс FormatCondition, который имеет все необходимые методы для применения выбранного условного форматирования. Вот список нескольких методов Get.
Применить условное форматирование в листе
В следующем образце кода показано, как добавить условное форматирование значения ячейки на ячейках A1 и B2. Пожалуйста, посмотрите файл Excel-вывода, созданный кодом, а также следующий скриншот, который объясняет эффект кода на файл Excel-вывода. Если вы введете значение больше 100 в ячейку A2 и B2, красный цвет заливки из ячеек A1 и B2 исчезнет.
Образец кода
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(); |