1#ifndef OPENXLSX_XLFORMULA_HPP
2#define OPENXLSX_XLFORMULA_HPP
6# pragma warning(disable : 4251)
7# pragma warning(disable : 4275)
16#include "OpenXLSX-Exports.hpp"
57 typename = std::enable_if_t<std::is_same_v<std::decay_t<T>, std::string> or std::is_same_v<std::decay_t<T>, std::string_view> ||
58 std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>>>
62 if constexpr (std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>)
63 m_formulaString = formula;
64 else if constexpr (std::is_same_v<std::decay_t<T>, std::string_view>)
65 m_formulaString = std::string(formula);
67 m_formulaString = formula.c_str();
109 typename = std::enable_if_t<std::is_same_v<std::decay_t<T>, std::string> or std::is_same_v<std::decay_t<T>, std::string_view> ||
110 std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>>>
114 std::swap(*
this, temp);
125 typename = std::enable_if_t<std::is_same_v<std::decay_t<T>, std::string> or std::is_same_v<std::decay_t<T>, std::string_view> ||
126 std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>>>
134 std::string get()
const;
140 operator std::string()
const;
149 std::string m_formulaString;
181 typename = std::enable_if_t<std::is_same_v<std::decay_t<T>,
XLFormula> or std::is_same_v<std::decay_t<T>, std::string> ||
182 std::is_same_v<std::decay_t<T>, std::string_view> ||
183 std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>>>
186 if constexpr (std::is_same_v<std::decay_t<T>,
XLFormula>)
187 setFormulaString(formula.get().c_str());
188 else if constexpr (std::is_same_v<std::decay_t<T>, std::string>)
189 setFormulaString(formula.c_str());
190 else if constexpr (std::is_same_v<std::decay_t<T>, std::string_view>)
191 setFormulaString(std::string(formula).c_str());
193 setFormulaString(formula);
205 typename = std::enable_if_t<std::is_same_v<std::decay_t<T>, std::string> or std::is_same_v<std::decay_t<T>, std::string_view> ||
206 std::is_same_v<std::decay_t<T>,
const char*> or std::is_same_v<std::decay_t<T>,
char*>>>
214 std::string get()
const;
226 operator std::string()
const;
266 void setFormulaString(
const char* formulaString,
bool resetValue = XLResetValue);
305 inline std::ostream&
operator<<(std::ostream& os,
const XLFormula& value) {
return os << value.m_formulaString; }
Definition XLXmlParser.hpp:84
An implementation class encapsulating the properties and behaviours of a spreadsheet cell.
Definition XLCell.hpp:41
Definition IZipArchive.hpp:18
bool operator==(const XLCell &lhs, const XLCell &rhs)
Definition XLCell.hpp:304
bool operator!=(const XLCell &lhs, const XLCell &rhs)
Definition XLCell.hpp:311
constexpr bool XLResetValue
Definition XLFormula.hpp:21
constexpr bool XLPreserveValue
Definition XLFormula.hpp:22
std::ostream & operator<<(std::ostream &os, const XLCell &c)
ostream output of XLCell content
Definition XLCell.hpp:319