1#ifndef OPENXLSX_XLDRAWING_HPP
2#define OPENXLSX_XLDRAWING_HPP
11#include "OpenXLSX-Exports.hpp"
92 std::string objectType()
const;
93 bool moveWithCells()
const;
95 bool sizeWithCells()
const;
96 std::string anchor()
const;
97 bool autoFill()
const;
100 uint32_t row()
const;
101 uint16_t column()
const;
106 bool setObjectType(std::string_view newObjectType);
107 bool setMoveWithCells(
bool set =
true);
108 bool setSizeWithCells(
bool set =
true);
109 bool setAnchor(std::string_view newAnchor);
110 bool setAutoFill(
bool set =
true);
113 bool setRow(uint32_t newRow);
114 bool setColumn(uint16_t newColumn);
117 mutable XMLNode m_clientDataNode;
118 inline static const std::vector<std::string_view> m_nodeOrder =
119 {
"x:MoveWithCells",
"x:SizeWithCells",
"x:Anchor",
"x:AutoFill",
"x:TextVAlign",
"x:TextHAlign",
"x:Row",
"x:Column"};
137 explicit XLShapeStyle(
const std::string& styleAttribute);
152 int16_t attributeOrderIndex(std::string_view attributeName)
const;
156 XLShapeStyleAttribute getAttribute(std::string_view attributeName, std::string_view valIfNotFound =
"")
const;
157 bool setAttribute(std::string_view attributeName, std::string_view attributeValue);
163 std::string position()
const;
164 uint16_t marginLeft()
const;
165 uint16_t marginTop()
const;
166 uint16_t width()
const;
167 uint16_t height()
const;
168 std::string msoWrapStyle()
const;
169 std::string vTextAnchor()
const;
171 bool visible()
const;
173 std::string
raw()
const {
return m_style; }
178 bool setPosition(std::string_view newPosition);
179 bool setMarginLeft(uint16_t newMarginLeft);
180 bool setMarginTop(uint16_t newMarginTop);
181 bool setWidth(uint16_t newWidth);
182 bool setHeight(uint16_t newHeight);
183 bool setMsoWrapStyle(std::string_view newMsoWrapStyle);
184 bool setVTextAnchor(std::string_view newVTextAnchor);
195 mutable std::string m_style;
197 inline static const std::vector<std::string_view> m_nodeOrder = {
"position",
203 "mso-fit-shape-to-text",
252 std::string shapeId()
const;
253 std::string fillColor()
const;
254 bool stroked()
const;
255 std::string type()
const;
256 bool allowInCell()
const;
267 bool setFillColor(std::string_view newFillColor);
268 bool setStroked(
bool set);
269 bool setType(std::string_view newType);
270 bool setAllowInCell(
bool set);
271 bool setStyle(std::string_view newStyle);
276 inline static const std::vector<std::string_view> m_nodeOrder =
277 {
"v:shadow",
"v:fill",
"v:stroke",
"v:path",
"v:textbox",
"x:ClientData"};
360 std::string name()
const;
361 std::string description()
const;
362 uint32_t row()
const;
363 uint32_t col()
const;
364 uint32_t width()
const;
365 uint32_t height()
const;
366 std::string relationshipId()
const;
372 std::vector<uint8_t> imageBinary()
const;
436 void addImage(std::string_view rId,
437 std::string_view name,
438 std::string_view description,
456 void addChartAnchor(std::string_view rId, std::string_view name, uint32_t row, uint32_t col, uint32_t width, uint32_t height);
458 void addChartAnchor(std::string_view rId, std::string_view name, uint32_t row, uint32_t col,
XLDistance width,
XLDistance height);
470 void addScaledImage(std::string_view rId,
471 std::string_view name,
472 std::string_view description,
473 std::string_view data,
476 double scalingFactor = 1.0);
488 uint32_t imageCount()
const;
501 std::unique_ptr<XLRelationships> m_relationships;
550 XMLNode firstShapeNode()
const;
552 XMLNode shapeNode(uint32_t index)
const;
560 XMLNode shapeNode(std::string_view cellRef)
const;
562 uint32_t shapeCount()
const;
564 XLShape shape(uint32_t index)
const;
566 bool deleteShape(uint32_t index);
567 bool deleteShape(std::string_view cellRef);
574 void print(std::basic_ostream<char>& ostr)
const;
577 uint32_t m_shapeCount{0};
578 uint32_t m_lastAssignedShapeId{0};
579 std::string m_defaultShapeTypeId{};
XLXmlData * xmlData
Definition XLDocument.cpp:1422
return XLRelationships(xmlData, relsFilename)
Definition XLXmlParser.hpp:84
Definition XLConstants.hpp:32
This class encapsulates the concept of an excel file. It is different from the XLWorkbook,...
Definition XLDocument.hpp:82
Definition XLDrawing.hpp:350
XLDrawingItem & operator=(const XLDrawingItem &other)=default
XLDrawingItem(const XLDrawingItem &other)=default
XLDrawingItem & operator=(XLDrawingItem &&other) noexcept=default
XLDrawingItem(XLDrawingItem &&other) noexcept=default
The XLDrawing class is the base class for worksheet drawings (images, charts, etc....
Definition XLDrawing.hpp:383
~XLDrawing()=default
The destructor.
XLDrawing()
Constructor.
Definition XLDrawing.hpp:391
XLDrawing(XLDrawing &&other) noexcept
Move constructor.
XLDrawing & operator=(XLDrawing &&other) noexcept
Move assignment operator.
Definition XLRelationships.hpp:140
An encapsulation of a shape client data element x:ClientData.
Definition XLDrawing.hpp:51
XLShapeClientData(const XLShapeClientData &other)=default
Copy Constructor.
XLShapeClientData(XLShapeClientData &&other) noexcept=default
Move Constructor.
~XLShapeClientData()=default
XLShapeClientData & operator=(XLShapeClientData &&other) noexcept=default
Move assignment operator.
XLShapeClientData & operator=(const XLShapeClientData &other)=default
Copy assignment operator.
Definition XLDrawing.hpp:129
std::string raw() const
Definition XLDrawing.hpp:173
bool setRaw(std::string_view newStyle)
Definition XLDrawing.hpp:188
Definition XLDrawing.hpp:209
XLShape(const XLShape &other)=default
Copy Constructor.
XLShape & operator=(XLShape &&other) noexcept=default
Move assignment operator.
XLShape & operator=(const XLShape &other)
Copy assignment operator.
XLShape(XLShape &&other) noexcept=default
Move Constructor.
The XLVmlDrawing class is the base class for worksheet comments.
Definition XLDrawing.hpp:508
XLVmlDrawing(const XLVmlDrawing &other)=default
The copy constructor.
XLVmlDrawing()
Constructor.
Definition XLDrawing.hpp:515
XLVmlDrawing & operator=(XLVmlDrawing &&other) noexcept=default
~XLVmlDrawing()=default
The destructor.
XLVmlDrawing & operator=(const XLVmlDrawing &)=default
Assignment operator.
XLVmlDrawing(XLVmlDrawing &&other) noexcept=default
A class encapsulating an Excel worksheet. Access to XLWorksheet objects should be via the workbook ob...
Definition XLWorksheet.hpp:118
The XLXmlFile class provides an interface for derived classes to use. It functions as an ancestor to ...
Definition XLXmlFile.hpp:42
Definition IZipArchive.hpp:18
XLVectorShapeType
An encapsulation of a drawing item (e.g. an image)
Definition XLDrawing.hpp:284
const std::string_view ShapeNodeName
Definition XLDrawing.cpp:19
pugi::xml_attribute XMLAttribute
Definition XLXmlParser.hpp:64
constexpr const XLShapeTextHAlign XLDefaultShapeTextHAlign
Definition XLDrawing.hpp:45
XLShapeTextVAlign
Definition XLDrawing.hpp:31
const std::string_view ShapeTypeNodeName
Definition XLDrawing.cpp:20
constexpr const XLShapeTextVAlign XLDefaultShapeTextVAlign
Definition XLDrawing.hpp:37
XLShapeTextHAlign
Definition XLDrawing.hpp:39
Options for inserting an image into a worksheet.
Definition XLImageOptions.hpp:23
Definition XLDrawing.hpp:123
std::string value
Definition XLDrawing.hpp:125
std::string name
Definition XLDrawing.hpp:124
Definition XLDrawing.hpp:313
std::optional< uint32_t > endCol
Definition XLDrawing.hpp:328
bool flipV
Definition XLDrawing.hpp:335
int32_t endOffsetY
Definition XLDrawing.hpp:330
XLVectorShapeType type
Definition XLDrawing.hpp:314
std::string arrowStart
Definition XLDrawing.hpp:339
double lineWidth
Definition XLDrawing.hpp:319
bool flipH
Definition XLDrawing.hpp:334
int32_t offsetX
Definition XLDrawing.hpp:323
uint32_t width
Definition XLDrawing.hpp:321
std::string vertAlign
Definition XLDrawing.hpp:345
std::string lineDash
Definition XLDrawing.hpp:338
std::string macro
Definition XLDrawing.hpp:347
std::string fillColor
Definition XLDrawing.hpp:317
int32_t endOffsetX
Definition XLDrawing.hpp:329
std::string lineColor
Definition XLDrawing.hpp:318
std::string name
Definition XLDrawing.hpp:315
uint32_t height
Definition XLDrawing.hpp:322
uint32_t rotation
Definition XLDrawing.hpp:333
std::string arrowEnd
Definition XLDrawing.hpp:340
std::optional< XLRichText > richText
Definition XLDrawing.hpp:343
int32_t offsetY
Definition XLDrawing.hpp:324
std::string horzAlign
Definition XLDrawing.hpp:344
std::optional< uint32_t > endRow
Definition XLDrawing.hpp:327
std::string text
Definition XLDrawing.hpp:316