1#ifndef OPENXLSX_XLRICHTEXT_HPP
2#define OPENXLSX_XLRICHTEXT_HPP
10#include "OpenXLSX-Exports.hpp"
25 const std::string&
text()
const {
return m_text; }
33 std::optional<std::string>
fontName()
const {
return m_fontName; }
40 std::optional<size_t>
fontSize()
const {
return m_fontSize; }
47 std::optional<XLColor>
fontColor()
const {
return m_fontColor; }
54 std::optional<bool>
bold()
const {
return m_bold; }
61 std::optional<bool>
italic()
const {
return m_italic; }
69 std::optional<bool>
underline()
const {
return m_underlineStyle.has_value() ? m_underlineStyle.value() !=
XLUnderlineNone : std::optional<bool>{}; }
77 std::optional<XLUnderlineStyle>
underlineStyle()
const {
return m_underlineStyle; }
80 m_underlineStyle = style;
87 m_strikethrough = strikethrough;
91 std::optional<XLVerticalAlignRunStyle>
vertAlign()
const {
return m_vertAlign; }
109 else if (m_vertAlign ==
XLSubscript) m_vertAlign.reset();
115 std::optional<std::string> m_fontName;
116 std::optional<size_t> m_fontSize;
117 std::optional<XLColor> m_fontColor;
118 std::optional<bool> m_bold;
119 std::optional<bool> m_italic;
120 std::optional<XLUnderlineStyle> m_underlineStyle;
121 std::optional<bool> m_strikethrough;
122 std::optional<XLVerticalAlignRunStyle> m_vertAlign;
132 explicit XLRichText(
const std::string& plainText) { m_runs.emplace_back(plainText); }
136 m_runs.push_back(run);
141 m_runs.emplace_back(text);
142 return m_runs.back();
144 const std::vector<XLRichTextRun>&
runs()
const {
return m_runs; }
145 std::vector<XLRichTextRun>&
runs() {
return m_runs; }
153 for (
const auto& run : m_runs) { result += run.text(); }
157 bool empty()
const {
return m_runs.empty(); }
162 for (
const auto& run : other.
runs()) {
163 m_runs.push_back(run);
170 m_runs.emplace_back(text);
176 m_runs.push_back(run);
181 std::vector<XLRichTextRun> m_runs;
Definition XLColor.hpp:22
A class representing a single run of rich text.
Definition XLRichText.hpp:20
XLRichTextRun & setFontSize(size_t size)
Definition XLRichText.hpp:41
XLRichTextRun & setSuperscript(bool enable=true)
Definition XLRichText.hpp:99
XLRichTextRun & setFontColor(const XLColor &color)
Definition XLRichText.hpp:48
XLRichTextRun(const std::string &text)
Definition XLRichText.hpp:23
std::optional< std::string > fontName() const
Definition XLRichText.hpp:33
std::optional< size_t > fontSize() const
Definition XLRichText.hpp:40
std::optional< XLColor > fontColor() const
Definition XLRichText.hpp:47
XLRichTextRun & setSubscript(bool enable=true)
Definition XLRichText.hpp:106
XLRichTextRun & setText(const std::string &text)
Definition XLRichText.hpp:26
std::optional< bool > strikethrough() const
Definition XLRichText.hpp:84
XLRichTextRun & setUnderline(bool underline=true)
Definition XLRichText.hpp:71
std::optional< bool > italic() const
Definition XLRichText.hpp:61
std::optional< XLVerticalAlignRunStyle > vertAlign() const
Definition XLRichText.hpp:91
XLRichTextRun & setBold(bool bold=true)
Definition XLRichText.hpp:55
XLRichTextRun & setStrikethrough(bool strikethrough=true)
Definition XLRichText.hpp:85
XLRichTextRun & setVertAlign(XLVerticalAlignRunStyle align)
Definition XLRichText.hpp:92
XLRichTextRun & setItalic(bool italic=true)
Definition XLRichText.hpp:62
std::optional< bool > underline() const
Definition XLRichText.hpp:69
std::optional< XLUnderlineStyle > underlineStyle() const
Definition XLRichText.hpp:77
std::optional< bool > bold() const
Definition XLRichText.hpp:54
XLRichTextRun & setUnderlineStyle(XLUnderlineStyle style)
Definition XLRichText.hpp:78
XLRichTextRun & setFontName(const std::string &name)
Definition XLRichText.hpp:34
const std::string & text() const
Definition XLRichText.hpp:25
A class representing rich text in a cell.
Definition XLRichText.hpp:129
XLRichText & operator+=(const XLRichText &other)
Definition XLRichText.hpp:160
XLRichText(const std::string &plainText)
Definition XLRichText.hpp:132
void clear()
Definition XLRichText.hpp:158
bool empty() const
Definition XLRichText.hpp:157
std::string plainText() const
Get the plain text representation of the rich text.
Definition XLRichText.hpp:150
XLRichText & operator+=(const XLRichTextRun &run)
Definition XLRichText.hpp:174
std::vector< XLRichTextRun > & runs()
Definition XLRichText.hpp:145
XLRichText & operator+=(const std::string &text)
Definition XLRichText.hpp:168
const std::vector< XLRichTextRun > & runs() const
Definition XLRichText.hpp:144
XLRichText & addRun(const XLRichTextRun &run)
Definition XLRichText.hpp:134
XLRichTextRun & addRun(const std::string &text)
Definition XLRichText.hpp:139
Definition IZipArchive.hpp:18
XLUnderlineStyle
Definition XLStyles.hpp:80
@ XLUnderlineSingle
Definition XLStyles.hpp:82
@ XLUnderlineNone
Definition XLStyles.hpp:81
bool operator==(const XLCell &lhs, const XLCell &rhs)
Definition XLCell.hpp:304
bool operator!=(const XLCell &lhs, const XLCell &rhs)
Definition XLCell.hpp:311
XLRichText operator+(XLRichText lhs, const XLRichText &rhs)
Definition XLRichText.hpp:184
XLVerticalAlignRunStyle
Definition XLStyles.hpp:96
@ XLSubscript
Definition XLStyles.hpp:98
@ XLSuperscript
Definition XLStyles.hpp:99