132 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // xlsxconditionalformatting.h
 | |
| 
 | |
| #ifndef QXLSX_XLSXCONDITIONALFORMATTING_H
 | |
| #define QXLSX_XLSXCONDITIONALFORMATTING_H
 | |
| 
 | |
| #include "xlsxcellrange.h"
 | |
| #include "xlsxcellreference.h"
 | |
| #include "xlsxglobal.h"
 | |
| 
 | |
| #include <QColor>
 | |
| #include <QList>
 | |
| #include <QSharedDataPointer>
 | |
| #include <QString>
 | |
| #include <QXmlStreamReader>
 | |
| #include <QXmlStreamWriter>
 | |
| #include <QtGlobal>
 | |
| 
 | |
| class ConditionalFormattingTest;
 | |
| 
 | |
| QT_BEGIN_NAMESPACE_XLSX
 | |
| 
 | |
| class Format;
 | |
| class Worksheet;
 | |
| class Styles;
 | |
| class ConditionalFormattingPrivate;
 | |
| 
 | |
| class QXLSX_EXPORT ConditionalFormatting
 | |
| {
 | |
| public:
 | |
|     enum HighlightRuleType {
 | |
|         Highlight_LessThan,
 | |
|         Highlight_LessThanOrEqual,
 | |
|         Highlight_Equal,
 | |
|         Highlight_NotEqual,
 | |
|         Highlight_GreaterThanOrEqual,
 | |
|         Highlight_GreaterThan,
 | |
|         Highlight_Between,
 | |
|         Highlight_NotBetween,
 | |
| 
 | |
|         Highlight_ContainsText,
 | |
|         Highlight_NotContainsText,
 | |
|         Highlight_BeginsWith,
 | |
|         Highlight_EndsWith,
 | |
| 
 | |
|         Highlight_TimePeriod,
 | |
| 
 | |
|         Highlight_Duplicate,
 | |
|         Highlight_Unique,
 | |
|         Highlight_Blanks,
 | |
|         Highlight_NoBlanks,
 | |
|         Highlight_Errors,
 | |
|         Highlight_NoErrors,
 | |
| 
 | |
|         Highlight_Top,
 | |
|         Highlight_TopPercent,
 | |
|         Highlight_Bottom,
 | |
|         Highlight_BottomPercent,
 | |
| 
 | |
|         Highlight_AboveAverage,
 | |
|         Highlight_AboveOrEqualAverage,
 | |
|         Highlight_AboveStdDev1,
 | |
|         Highlight_AboveStdDev2,
 | |
|         Highlight_AboveStdDev3,
 | |
|         Highlight_BelowAverage,
 | |
|         Highlight_BelowOrEqualAverage,
 | |
|         Highlight_BelowStdDev1,
 | |
|         Highlight_BelowStdDev2,
 | |
|         Highlight_BelowStdDev3,
 | |
| 
 | |
|         Highlight_Expression
 | |
|     };
 | |
| 
 | |
|     enum ValueObjectType { VOT_Formula, VOT_Max, VOT_Min, VOT_Num, VOT_Percent, VOT_Percentile };
 | |
| 
 | |
| public:
 | |
|     ConditionalFormatting();
 | |
|     ConditionalFormatting(const ConditionalFormatting &other);
 | |
|     ~ConditionalFormatting();
 | |
| 
 | |
| public:
 | |
|     bool addHighlightCellsRule(HighlightRuleType type,
 | |
|                                const Format &format,
 | |
|                                bool stopIfTrue = false);
 | |
|     bool addHighlightCellsRule(HighlightRuleType type,
 | |
|                                const QString &formula1,
 | |
|                                const Format &format,
 | |
|                                bool stopIfTrue = false);
 | |
|     bool addHighlightCellsRule(HighlightRuleType type,
 | |
|                                const QString &formula1,
 | |
|                                const QString &formula2,
 | |
|                                const Format &format,
 | |
|                                bool stopIfTrue = false);
 | |
|     bool addDataBarRule(const QColor &color, bool showData = true, bool stopIfTrue = false);
 | |
|     bool addDataBarRule(const QColor &color,
 | |
|                         ValueObjectType type1,
 | |
|                         const QString &val1,
 | |
|                         ValueObjectType type2,
 | |
|                         const QString &val2,
 | |
|                         bool showData   = true,
 | |
|                         bool stopIfTrue = false);
 | |
|     bool
 | |
|         add2ColorScaleRule(const QColor &minColor, const QColor &maxColor, bool stopIfTrue = false);
 | |
|     bool add3ColorScaleRule(const QColor &minColor,
 | |
|                             const QColor &midColor,
 | |
|                             const QColor &maxColor,
 | |
|                             bool stopIfTrue = false);
 | |
| 
 | |
|     QList<CellRange> ranges() const;
 | |
| 
 | |
|     void addCell(const CellReference &cell);
 | |
|     void addCell(int row, int col);
 | |
|     void addRange(int firstRow, int firstCol, int lastRow, int lastCol);
 | |
|     void addRange(const CellRange &range);
 | |
| 
 | |
|     // needed by QSharedDataPointer!!
 | |
|     ConditionalFormatting &operator=(const ConditionalFormatting &other);
 | |
| 
 | |
| private:
 | |
|     friend class Worksheet;
 | |
|     friend class ::ConditionalFormattingTest;
 | |
| 
 | |
| private:
 | |
|     bool saveToXml(QXmlStreamWriter &writer) const;
 | |
|     bool loadFromXml(QXmlStreamReader &reader, Styles *styles = nullptr);
 | |
| 
 | |
|     QSharedDataPointer<ConditionalFormattingPrivate> d;
 | |
| };
 | |
| 
 | |
| QT_END_NAMESPACE_XLSX
 | |
| 
 | |
| #endif // QXLSX_XLSXCONDITIONALFORMATTING_H
 | 
