1#ifndef OPENXLSX_XLDATAVALIDATION_HPP
2#define OPENXLSX_XLDATAVALIDATION_HPP
4#include "OpenXLSX-Exports.hpp"
54 class XLDataValidation;
63 bool allowBlank =
true;
64 bool showDropDown =
false;
65 bool showInputMessage =
false;
66 bool showErrorMessage =
false;
89 [[nodiscard]]
bool empty()
const {
return !m_node; }
97 XLDataValidation& requireList(
const std::vector<std::string>& list,
bool allowBlank =
true);
105 XLDataValidation& requireList(std::string_view formula,
bool allowBlank =
true);
108 std::string_view message,
110 XLDataValidation& setPromptMessage(std::string_view title, std::string_view message);
117 [[nodiscard]] std::string sqref()
const;
120 [[nodiscard]]
bool allowBlank()
const;
121 [[nodiscard]] std::string formula1()
const;
122 [[nodiscard]] std::string formula2()
const;
123 [[nodiscard]]
bool showDropDown()
const;
124 [[nodiscard]]
bool showInputMessage()
const;
125 [[nodiscard]]
bool showErrorMessage()
const;
127 [[nodiscard]] std::string promptTitle()
const;
128 [[nodiscard]] std::string prompt()
const;
129 [[nodiscard]] std::string errorTitle()
const;
130 [[nodiscard]] std::string error()
const;
134 void setSqref(std::string_view sqref);
136 void addCell(
const std::string& ref);
138 void addRange(
const std::string& range);
140 void removeCell(
const std::string& ref);
142 void removeRange(
const std::string& range);
145 void setAllowBlank(
bool allow);
146 void setFormula1(std::string_view formula);
147 void setFormula2(std::string_view formula);
148 void setPrompt(std::string_view title, std::string_view msg);
149 void setError(std::string_view title, std::string_view msg,
XLDataValidationErrorStyle style = XLDataValidationErrorStyle::Stop);
152 void setShowDropDown(
bool show);
153 void setShowInputMessage(
bool show);
154 void setShowErrorMessage(
bool show);
158 void setWholeNumberRange(
double min,
double max);
159 void setDecimalRange(
double min,
double max);
160 void setDateRange(std::string_view min, std::string_view max);
161 void setTimeRange(std::string_view min, std::string_view max);
162 void setTextLengthRange(
int min,
int max);
163 void setList(
const std::vector<std::string>& items);
164 void setReferenceDropList(std::string_view targetSheet, std::string_view range);
204 if (m_node) m_node = m_node.next_sibling(
"dataValidation");
225 if (!m_sheetNode)
return true;
226 return !m_sheetNode.child(
"dataValidations");
228 [[nodiscard]]
size_t count()
const;
243 void remove(
size_t index);
244 void remove(std::string_view sqref);
247 [[nodiscard]]
bool disablePrompts()
const;
248 void setDisablePrompts(
bool disable);
250 [[nodiscard]] uint32_t xWindow()
const;
251 void setXWindow(uint32_t x);
253 [[nodiscard]] uint32_t yWindow()
const;
254 void setYWindow(uint32_t y);
258 if (!m_sheetNode)
return Iterator();
259 auto dvNode = m_sheetNode.child(
"dataValidations");
261 return Iterator(dvNode.child(
"dataValidation"));
Definition XLXmlParser.hpp:84
Definition XLCellReference.hpp:34
Definition XLDataValidation.hpp:84
XLDataValidation(const XMLNode &node)
Definition XLDataValidation.hpp:87
XLDataValidation()
Definition XLDataValidation.hpp:86
bool empty() const
Definition XLDataValidation.hpp:89
Definition XLDataValidation.hpp:192
Proxy(value_type val)
Definition XLDataValidation.hpp:196
value_type * operator->()
Definition XLDataValidation.hpp:197
Definition XLDataValidation.hpp:178
Iterator()
Definition XLDataValidation.hpp:186
Proxy operator->() const
Definition XLDataValidation.hpp:200
Iterator & operator++()
Definition XLDataValidation.hpp:202
std::ptrdiff_t difference_type
Definition XLDataValidation.hpp:182
value_type operator*() const
Definition XLDataValidation.hpp:189
std::forward_iterator_tag iterator_category
Definition XLDataValidation.hpp:180
Iterator(XMLNode node)
Definition XLDataValidation.hpp:187
Iterator operator++(int)
Definition XLDataValidation.hpp:207
bool operator==(const Iterator &other) const
Definition XLDataValidation.hpp:213
bool operator!=(const Iterator &other) const
Definition XLDataValidation.hpp:214
Definition XLDataValidation.hpp:174
bool empty() const
Definition XLDataValidation.hpp:223
XLDataValidations(const XMLNode &node)
Definition XLDataValidation.hpp:221
XLDataValidations()
Definition XLDataValidation.hpp:220
Iterator begin() const
Definition XLDataValidation.hpp:256
Iterator end() const
Definition XLDataValidation.hpp:264
Definition IZipArchive.hpp:18
XLIMEMode
IME (Input Method Editor) mode for data validation.
Definition XLDataValidation.hpp:40
XLDataValidationErrorStyle
Definition XLDataValidation.hpp:35
XLDataValidationType
Definition XLDataValidation.hpp:16
XLDataValidationOperator
Definition XLDataValidation.hpp:21
Definition XLDataValidation.hpp:60
std::string prompt
Definition XLDataValidation.hpp:70
std::string promptTitle
Definition XLDataValidation.hpp:69
std::string error
Definition XLDataValidation.hpp:72
std::string formula1
Definition XLDataValidation.hpp:73
std::string errorTitle
Definition XLDataValidation.hpp:71
std::string formula2
Definition XLDataValidation.hpp:74
XLDataValidationConfig()=default