1#ifndef OPENXLSX_XLCONDITIONALFORMATTING_HPP
2#define OPENXLSX_XLCONDITIONALFORMATTING_HPP
4#include "OpenXLSX-Exports.hpp"
106 std::string value()
const;
110 void setValue(
const std::string& value);
111 void setGte(
bool gte);
116 XMLNode getOrCreateExtNode()
const;
119 std::unique_ptr<XMLDocument> m_xmlDocument;
135 std::vector<XLCfvo> cfvos()
const;
136 std::vector<XLColor> colors()
const;
144 XMLNode getOrCreateExtNode()
const;
147 std::unique_ptr<XMLDocument> m_xmlDocument;
148 mutable XMLNode m_colorScaleNode;
167 void setMin(
XLCfvoType type,
const std::string& value);
168 void setMax(
XLCfvoType type,
const std::string& value);
169 void setColor(
const XLColor& color);
171 bool showValue()
const;
172 void setShowValue(
bool show);
175 uint32_t minLength()
const;
176 void setMinLength(uint32_t length);
177 uint32_t maxLength()
const;
178 void setMaxLength(uint32_t length);
180 void setBorder(
bool border);
181 bool gradient()
const;
182 void setGradient(
bool gradient);
186 void setBorderColor(
const XLColor& color);
187 XLColor negativeFillColor()
const;
188 void setNegativeFillColor(
const XLColor& color);
189 XLColor negativeBorderColor()
const;
190 void setNegativeBorderColor(
const XLColor& color);
194 void setAxisColor(
const XLColor& color);
200 XMLNode getOrCreateExtNode()
const;
203 std::unique_ptr<XMLDocument> m_xmlDocument;
219 std::string iconSet()
const;
220 void setIconSet(
const std::string& iconSetName);
222 std::vector<XLCfvo> cfvos()
const;
223 void addValue(
XLCfvoType type,
const std::string& value);
226 bool showValue()
const;
227 void setShowValue(
bool show);
251 bool percent()
const;
252 void setPercent(
bool percent);
253 bool reverse()
const;
254 void setReverse(
bool reverse);
259 XMLNode getOrCreateExtNode()
const;
262 std::unique_ptr<XMLDocument> m_xmlDocument;
281 std::string formula()
const;
282 std::vector<std::string> formulas()
const;
290 uint16_t priority()
const;
291 bool stopIfTrue()
const;
292 bool aboveAverage()
const;
293 bool percent()
const;
296 std::string text()
const;
298 uint16_t rank()
const;
299 int16_t stdDev()
const;
300 bool equalAverage()
const;
302 XLCfRule& setFormula(std::string
const& newFormula);
303 bool addFormula(std::string
const& newFormula);
304 void clearFormulas();
313 XLCfRule& setPriority(uint16_t newPriority);
316 XLCfRule& setStopIfTrue(
bool set =
true);
317 XLCfRule& setAboveAverage(
bool set =
true);
318 XLCfRule& setPercent(
bool set =
true);
319 XLCfRule& setBottom(
bool set =
true);
321 XLCfRule& setText(std::string
const& newText);
323 XLCfRule& setRank(uint16_t newRank);
324 XLCfRule& setStdDev(int16_t newStdDev);
325 XLCfRule& setEqualAverage(
bool set =
true);
327 std::string summary()
const;
332 std::unique_ptr<XMLDocument> m_xmlDocument;
334 inline static const std::vector<std::string_view> m_nodeOrder = {
"formula",
"colorScale",
"dataBar",
"iconSet",
"extLst"};
352 uint16_t maxPriorityValue()
const;
353 bool setPriority(
size_t cfRuleIndex, uint16_t newPriority);
354 void renumberPriorities(uint16_t increment = 1);
355 size_t count()
const;
356 XLCfRule cfRuleByIndex(
size_t index)
const;
358 size_t create(
XLCfRule copyFrom =
XLCfRule{}, std::string cfRulePrefix = XLDefaultCfRulePrefix);
359 std::string summary()
const;
362 mutable XMLNode m_conditionalFormattingNode;
363 inline static const std::vector<std::string_view> m_nodeOrder = {
"cfRule",
"extLst"};
381 std::string sqref()
const;
385 bool setSqref(std::string newSqref);
387 std::string summary()
const;
390 mutable XMLNode m_conditionalFormattingNode;
391 inline static const std::vector<std::string_view> m_nodeOrder = {
"cfRule",
"extLst"};
409 size_t count()
const;
413 std::string conditionalFormattingPrefix = XLDefaultConditionalFormattingPrefix);
414 std::string summary()
const;
417 mutable XMLNode m_sheetNode;
418 const std::vector<std::string_view>* m_nodeOrder;
423 OPENXLSX_EXPORT XLCfRule
XLColorScaleRule(
const XLColor& minColor,
const XLColor& maxColor);
424 OPENXLSX_EXPORT XLCfRule
XLColorScaleRule(
const XLColor& minColor,
const XLColor& midColor,
const XLColor& maxColor);
425 OPENXLSX_EXPORT XLCfRule
XLDataBarRule(
const XLColor& color,
bool showValue =
true);
427 OPENXLSX_EXPORT XLCfRule
XLCellIsRule(
const std::string& op,
const std::string& value);
428 OPENXLSX_EXPORT XLCfRule
XLFormulaRule(
const std::string& formula);
431 OPENXLSX_EXPORT XLCfRule
XLIconSetRule(
const std::string& iconSetName =
"3TrafficLights1",
bool showValue =
true,
bool reverse =
false);
432 OPENXLSX_EXPORT XLCfRule
XLTop10Rule(uint16_t rank = 10,
bool percent =
false,
bool bottom =
false);
433 OPENXLSX_EXPORT XLCfRule
XLAboveAverageRule(
bool aboveAverage =
true,
bool equalAverage =
false, int16_t stdDev = 0);
Definition XLXmlParser.hpp:84
Definition XLConditionalFormatting.hpp:124
XMLNode node() const
Definition XLConditionalFormatting.hpp:141
Definition XLConditionalFormatting.hpp:152
XMLNode node() const
Definition XLConditionalFormatting.hpp:197
Definition XLConditionalFormatting.hpp:208
XLDataBarDirection direction() const
uint32_t maxLength() const
void setDirection(XLDataBarDirection direction)
void setBorderColor(const XLColor &color)
XLColor borderColor() const
uint32_t minLength() const
void setAxisPosition(XLDataBarAxisPosition position)
void setMinLength(uint32_t length)
void setNegativeBorderColor(const XLColor &color)
XLDataBarAxisPosition axisPosition() const
void setNegativeFillColor(const XLColor &color)
void setBorder(bool border)
XLColor negativeFillColor() const
XMLNode node() const
Definition XLConditionalFormatting.hpp:256
XLColor negativeBorderColor() const
void setMaxLength(uint32_t length)
XLColor axisColor() const
void setAxisColor(const XLColor &color)
void setGradient(bool gradient)
Definition XLConditionalFormatting.hpp:267
XMLNode node() const
Definition XLConditionalFormatting.hpp:329
Definition XLConditionalFormatting.hpp:340
XLCfRules & operator=(XLCfRules &&other) noexcept=default
XLCfRules(XLCfRules &&other) noexcept=default
XLCfRule operator[](size_t index) const
Definition XLConditionalFormatting.hpp:357
Definition XLConditionalFormatting.hpp:89
XMLNode node() const
Definition XLConditionalFormatting.hpp:113
Definition XLColor.hpp:22
The XLUnsupportedElement class provides a stub implementation that can be used as function parameter ...
Definition XLXmlFile.hpp:28
Definition IZipArchive.hpp:18
XLDataBarDirection
Definition XLConditionalFormatting.hpp:72
constexpr const char * XLDefaultConditionalFormattingPrefix
Definition XLConditionalFormatting.hpp:394
OPENXLSX_EXPORT XLCfRule XLContainsErrorsRule()
Definition XLConditionalFormatting.cpp:1404
OPENXLSX_EXPORT XLCfRule XLAboveAverageRule(bool aboveAverage=true, bool equalAverage=false, int16_t stdDev=0)
Definition XLConditionalFormatting.cpp:1355
OPENXLSX_EXPORT std::string XLCfvoTypeToString(XLCfvoType cfvoType)
Definition XLConditionalFormatting.cpp:217
OPENXLSX_EXPORT XLCfRule XLCellIsRule(XLCfOperator op, const std::string &value)
Definition XLConditionalFormatting.cpp:1282
OPENXLSX_EXPORT XLCfRule XLNotContainsBlanksRule()
Definition XLConditionalFormatting.cpp:1397
OPENXLSX_EXPORT XLCfRule XLDataBarRule(const XLColor &color, bool showValue=true)
Definition XLConditionalFormatting.cpp:1269
OPENXLSX_EXPORT XLCfRule XLContainsBlanksRule()
Definition XLConditionalFormatting.cpp:1390
constexpr const char * XLDefaultCfRulePrefix
Definition XLConditionalFormatting.hpp:337
OPENXLSX_EXPORT std::string XLDataBarDirectionToString(XLDataBarDirection direction)
Definition XLConditionalFormatting.cpp:244
XLCfTimePeriod
Definition XLConditionalFormatting.hpp:56
OPENXLSX_EXPORT std::string XLCfTimePeriodToString(XLCfTimePeriod cfTimePeriod)
inverse of XLCfTimePeriodFromString
Definition XLConditionalFormatting.cpp:176
size_t XLStyleIndex
Definition XLStyles.hpp:31
OPENXLSX_EXPORT XLCfType XLCfTypeFromString(std::string const &typeString)
get the correct XLCfType from the OOXML cfRule type attribute string
Definition XLConditionalFormatting.cpp:19
OPENXLSX_EXPORT XLCfvoType XLCfvoTypeFromString(std::string const &cfvoTypeString)
Definition XLConditionalFormatting.cpp:206
OPENXLSX_EXPORT XLDataBarAxisPosition XLDataBarAxisPositionFromString(std::string const &positionString)
Definition XLConditionalFormatting.cpp:253
OPENXLSX_EXPORT XLDataBarDirection XLDataBarDirectionFromString(std::string const &directionString)
Definition XLConditionalFormatting.cpp:237
OPENXLSX_EXPORT XLCfRule XLTop10Rule(uint16_t rank=10, bool percent=false, bool bottom=false)
Definition XLConditionalFormatting.cpp:1345
OPENXLSX_EXPORT std::string XLCfTypeToString(XLCfType cfType)
inverse of XLCfTypeFromString
Definition XLConditionalFormatting.cpp:46
XLCfvoType
Definition XLConditionalFormatting.hpp:70
OPENXLSX_EXPORT XLCfRule XLNotContainsErrorsRule()
Definition XLConditionalFormatting.cpp:1411
OPENXLSX_EXPORT XLCfOperator XLCfOperatorFromString(std::string const &operatorString)
get the correct XLCfOperator from the OOXML cfRule operator attribute string
Definition XLConditionalFormatting.cpp:97
OPENXLSX_EXPORT XLCfRule XLFormulaRule(const std::string &formula)
Definition XLConditionalFormatting.cpp:1312
OPENXLSX_EXPORT std::string XLDataBarAxisPositionToString(XLDataBarAxisPosition position)
Definition XLConditionalFormatting.cpp:260
XLCfType
Definition XLConditionalFormatting.hpp:18
OPENXLSX_EXPORT std::string XLCfOperatorToString(XLCfOperator cfOperator)
inverse of XLCfOperatorFromString
Definition XLConditionalFormatting.cpp:118
OPENXLSX_EXPORT XLCfRule XLIconSetRule(const std::string &iconSetName="3TrafficLights1", bool showValue=true, bool reverse=false)
Definition XLConditionalFormatting.cpp:1321
OPENXLSX_EXPORT XLCfRule XLContainsTextRule(const std::string &text)
Definition XLConditionalFormatting.cpp:1372
OPENXLSX_EXPORT XLCfRule XLColorScaleRule(const XLColor &minColor, const XLColor &maxColor)
Definition XLConditionalFormatting.cpp:1246
OPENXLSX_EXPORT XLCfTimePeriod XLCfTimePeriodFromString(std::string const &timePeriodString)
get the correct XLCfTimePeriod from the OOXML cfRule timePeriod attribute string
Definition XLConditionalFormatting.cpp:157
XLDataBarAxisPosition
Definition XLConditionalFormatting.hpp:73
OPENXLSX_EXPORT XLCfRule XLDuplicateValuesRule(bool unique=false)
Definition XLConditionalFormatting.cpp:1365
constexpr const uint16_t XLPriorityNotSet
Definition XLConditionalFormatting.hpp:16
OPENXLSX_EXPORT XLCfRule XLNotContainsTextRule(const std::string &text)
Definition XLConditionalFormatting.cpp:1381
XLCfOperator
Definition XLConditionalFormatting.hpp:40