33#include <unordered_map>
68 bool IsBasePos( sal_uInt16 nXclCol, sal_uInt32 nXclRow )
const;
78 sal_uInt16 nRecId, sal_uInt32 nRecSize,
const ScAddress& rScPos );
81 sal_uInt16 nRecId, sal_uInt32 nRecSize,
const ScRange& rScRange );
197 typedef std::unordered_map<const ScTokenArray*, XclExpShrfmlaRef>
TokensType;
229 bool IsAppendable( sal_uInt16 nXclCol, sal_uInt16 nXclRow )
const;
304 sal_uInt16 nRecId, std::size_t nContSize,
const XclAddress& rXclPos );
326 virtual bool IsEmpty()
const override;
334 const XclAddress& rXclPos, sal_uInt32 nXFId );
337 sal_uInt16 nRecId, std::size_t nContSize,
const XclAddress& rXclPos,
338 const ScPatternAttr* pPattern, sal_Int16 nScript, sal_uInt32 nForcedXFId );
404 const OUString& rStr );
474 virtual bool IsEmpty()
const override;
485 std::size_t nContSize,
const XclAddress& rXclPos );
495 sal_uInt32 nForcedXFId, sal_uInt16
nCount = 1 );
532 const XclAddress& rXclPos, sal_uInt16 nLastXclCol,
556 sal_Int32 nRkValue );
601 std::vector< XclExpLevelInfo >
655 sal_uInt16 nFirstUsedXclCol, sal_uInt32 nFirstUsedXclRow,
656 sal_uInt16 nFirstFreeXclCol, sal_uInt32 nFirstFreeXclRow );
692 bool IsDefWidth( sal_uInt16 nXclColWidth )
const;
695 void SetDefWidth( sal_uInt16 nXclColWidth,
bool bXLS );
857 size_t nStartColAllDefault,
858 bool bUpdateProgress );
930 size_t nStartColAllDefault );
946 typedef std::shared_ptr<XclExpRow>
RowRef;
947 typedef ::std::map<sal_uInt32, RowRef>
RowMap;
Caches all ARRAY records.
XclExpArrayRef FindArray(const ScTokenArray &rScTokArr, const ScAddress &rBasePos) const
Tries to find an ARRAY record that corresponds to an ocMatRef token.
XclExpArrayBuffer(const XclExpRoot &rRoot)
XclExpArrayRef CreateArray(const ScTokenArray &rScTokArr, const ScRange &rScRange)
Inserts a new ARRAY record into the buffer and returns it.
::std::map< ScAddress, XclExpArrayRef > XclExpArrayMap
Represents an ARRAY record that contains the token array of a matrix formula.
virtual bool IsVolatile() const override
Returns true, if the array formula contains volatile functions.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
virtual XclTokenArrayRef CreateCellTokenArray(const XclExpRoot &rRoot) const override
Creates and returns the token array for a corresponding FORMULA cell record.
XclTokenArrayRef mxTokArr
XclExpArray(const XclTokenArrayRef &xTokArr, const ScRange &rScRange)
Represents a BLANK or MULBLANK record that describes empty but formatted cells.
virtual void RemoveUnusedBlankCells(const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound) override
Tries to remove unused Excel XF index(es).
virtual void WriteXmlContents(XclExpXmlStream &rStrm, const XclAddress &rAddress, sal_uInt32 nXFId, sal_uInt16 nRelCol) override
virtual void GetBlankXFIndexes(ScfUInt16Vec &rXFIndexes) const override
Inserts the Excel XF index(es) into the passed vector.
XclExpBlankCell(const XclAddress &rXclPos, const XclExpMultiXFId &rXFId)
virtual void WriteContents(XclExpStream &rStrm, sal_uInt16 nRelCol) override
Writes the remaining contents of the specified cell (without XF index).
virtual bool TryMerge(const XclExpCellBase &rCell) override
Tries to merge the contents of the passed cell to own data.
Represents a BOOLERR record that describes a cell with a Boolean value.
virtual void WriteContents(XclExpStream &rStrm) override
Derived classes write the contents of the specified cell (without XF index).
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpBooleanCell(const XclExpRoot &rRoot, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_uInt32 nForcedXFId, bool bValue)
The base class of all cell records.
virtual void ConvertXFIndexes(const XclExpRoot &rRoot)=0
Derived classes convert the XF identifier(s) into the Excel XF index(es).
sal_uInt16 GetXclCol() const
Returns the (first) Excel column index of the cell(s).
virtual bool IsEmpty() const =0
Derived classes return true, if this record does not contain at least one valid cell.
virtual void RemoveUnusedBlankCells(const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound)
Derived classes for blank cells remove unused Excel XF index(es).
virtual sal_uInt16 GetLastXclCol() const =0
Derived classes return the column index of the last contained cell.
const XclAddress & GetXclPos() const
Returns the (first) address of the cell(s).
void SetXclCol(sal_uInt16 nXclCol)
Sets this record to a new column position.
virtual sal_uInt32 GetFirstXFId() const =0
Derived classes return the XF identifier of the first contained cell.
virtual void GetBlankXFIndexes(ScfUInt16Vec &rXFIndexes) const
Derived classes for blank cells insert the Excel XF index(es) into the passed vector.
virtual bool TryMerge(const XclExpCellBase &rCell)
Derived classes try to merge the contents of the passed cell to own data.
virtual bool IsMultiLineText() const
Derived classes return whether the cell contains multi-line text.
XclExpCellBase(sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos)
sal_uInt32 GetXclRow() const
Returns the Excel row index of the cell.
This class contains the cell contents and more of an entire sheet.
XclExpRowBuffer maRowBfr
Buffer for column formatting.
XclExpTableopBuffer maTableopBfr
Buffer for SHRFMLA records.
rtl::Reference< XclExpMergedcells > XclExpMergedcellsRef
virtual void Save(XclExpStream &rStrm) override
Saves the entire cell table.
XclExpNoteListRef mxNoteList
GUTS record for outline areas.
XclExpShrfmlaBuffer maShrfmlaBfr
Buffer for ARRAY records.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpRecordList< XclExpNote > XclExpNoteList
rtl::Reference< XclExpDval > XclExpDvalRef
XclExpHyperlinkRef mxHyperlinkList
MERGEDCELLS record for merged cell ranges.
XclExpMergedcellsRef mxMergedcells
List of NOTE records.
XclExpDefrowhRef mxDefrowheight
Buffer for TABLEOP records.
void Finalize(bool bXLS)
Converts all XF identifiers into the Excel XF indexes and calculates default formats.
XclExtLstRef mxExtLst
Data validation with DVAL and DV records.
rtl::Reference< XclExpDefrowheight > XclExpDefrowhRef
XclExpRecordList< XclExpHyperlink > XclExpHyperlinkList
XclExpColinfoBuffer maColInfoBfr
rtl::Reference< XclExpNoteList > XclExpNoteListRef
XclExpCellTable(const XclExpRoot &rRoot)
XclExpRecordRef CreateRecord(sal_uInt16 nRecId) const
Returns the reference to an internal record specified by the passed record id.
XclExpDvalRef mxDval
List of HLINK records.
XclExpRecordRef mxGuts
DEFROWHEIGHT record for default row format.
rtl::Reference< XclExtLst > XclExtLstRef
rtl::Reference< XclExpHyperlinkList > XclExpHyperlinkRef
XclExpArrayBuffer maArrayBfr
Rows and cell records.
The outline buffer for column outlines.
void Update(SCCOL nScCol)
Updates the current state by processing the settings of the passed Calc column.
XclExpColOutlineBuffer(const XclExpRoot &rRoot)
Contains COLINFO records for all columns of a Calc sheet.
sal_uInt8 mnHighestOutlineLevel
Buffer for column outline groups.
XclExpRecordList< XclExpColinfo > XclExpColinfoList
double GetDefColWidth() const
XclExpColinfoList::RecordRefType XclExpColinfoRef
sal_uInt8 GetHighestOutlineLevel() const
XclExpDefcolwidth maDefcolwidth
List of COLINFO records.
void Initialize(SCROW nLastScRow)
Initializes the buffer: finds settings and formatting of all columns.
XclExpColinfoList maColInfos
XclExpColinfoBuffer(const XclExpRoot &rRoot)
void Finalize(ScfUInt16Vec &rXFIndexes, bool bXLS)
Converts the XF identifiers into the Excel XF indexes and merges equal columns.
XclExpColOutlineBuffer maOutlineBfr
The DEFCOLWIDTH record.
virtual void Save(XclExpStream &rStrm) override
Writes all COLINFO records of this buffer.
virtual void SaveXml(XclExpXmlStream &rStrm) override
Contains the column settings for a range of columns.
bool TryMerge(const XclExpColinfo &rColInfo)
Tries to merge this record with the passed record.
XclExpColinfo(const XclExpRoot &rRoot, SCCOL nScCol, SCROW nLastScRow, XclExpColOutlineBuffer &rOutlineBfr)
Constructs the record with the settings in the Calc document.
void ConvertXFIndexes()
Converts the XF identifier into the Excel XF index.
sal_uInt16 mnScWidth
Excel width of the column.
sal_uInt16 mnLastXclCol
Index to first column.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of this COLINFO record.
sal_uInt8 mnOutlineLevel
Additional column flags.
sal_uInt16 GetColCount() const
Returns the number of columns represented by this record.
bool mbCustomWidth
The XF identifier for column default format.
sal_uInt16 mnFlags
Calc width of the column.
sal_uInt16 GetXFIndex() const
Returns the final Excel XF index of the column(s).
sal_uInt16 mnWidth
True = Column width is different from default width.
virtual void SaveXml(XclExpXmlStream &rStrm) override
sal_uInt16 GetColWidth() const
Returns the Excel width of the column(s).
sal_uInt16 mnFirstXclCol
Outline Level of column (for OOXML)
bool IsDefault(const XclExpDefcolwidth &rDefColWidth)
Returns true, if the column has default format and width.
Represents the DEFCOLWIDTH record containing the default column width of a sheet.
void SetDefWidth(sal_uInt16 nXclColWidth, bool bXLS)
Sets the passed column width (in 1/256 character width) as default width.
XclExpDefcolwidth(const XclExpRoot &rRoot)
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
bool IsDefWidth(sal_uInt16 nXclColWidth) const
Returns true, if the own default width exactly matches the passed width.
Represents a DEFROWHEIGHT record containing default format for unused rows.
void SetDefaultData(const XclExpDefaultRowData &rDefData)
Sets the passed default data as current record contents.
XclExpDefaultRowData maDefData
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of the record.
XclExpDefaultRowData & GetDefaultData()
Represents a DIMENSIONS record containing the used area of a sheet.
virtual void SaveXml(XclExpXmlStream &rStrm) override
void SetDimensions(sal_uInt16 nFirstUsedXclCol, sal_uInt32 nFirstUsedXclRow, sal_uInt16 nFirstFreeXclCol, sal_uInt32 nFirstFreeXclRow)
Sets the used area to the record.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of the DIMENSIONS record.
sal_uInt16 mnFirstFreeXclCol
First used column.
const XclExpRoot & mrRoot
XclExpDimensions(const XclExpRoot &rRoot)
sal_uInt32 mnFirstFreeXclRow
First used row.
sal_uInt32 mnFirstUsedXclRow
sal_uInt16 mnFirstUsedXclCol
First unused row after used area.
This class contains the DV record list following the DVAL record.
Represents a GUTS record containing the level count of row and column outlines.
XclExpGuts(const XclExpRoot &rRoot)
sal_uInt16 mnRowLevels
Width of column outline area (pixels).
sal_uInt16 mnRowWidth
Number of visible row outline levels.
sal_uInt16 mnColWidth
Number of visible column outline levels.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Helper to create HLINK records during creation of formatted cell strings.
Provides export of hyperlink data.
Represents a text cell record.
bool mbLineBreak
Index into Shared String Table (only used for BIFF8).
virtual bool IsMultiLineText() const override
Returns true if the cell contains multi-line text.
XclExpLabelCell(const XclExpRoot &rRoot, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_uInt32 nForcedXFId, const OUString &rStr)
Constructs the record from an unformatted Calc string cell.
sal_uInt32 mnSstIndex
The cell text.
void Init(const XclExpRoot &rRoot, const ScPatternAttr *pPattern, XclExpStringRef const &xText)
Initializes the record contents.
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual void WriteContents(XclExpStream &rStrm) override
Derived classes write the contents of the specified cell (without XF index).
Represents a MERGEDCELLS record containing all merged cell ranges in a sheet.
Base class for all cell records supporting multiple contents.
virtual bool IsEmpty() const override
Returns true, if this record does not contain at least one valid cell.
void GetXFIndexes(ScfUInt16Vec &rXFIndexes) const
Inserts the Excel XF index(es) into the passed vector.
XclExpMultiXFIdDeq maXFIds
Data size of contents for one cell.
virtual sal_uInt32 GetFirstXFId() const override
Return the XF identifier of the first contained cell.
virtual void ConvertXFIndexes(const XclExpRoot &rRoot) override
Convert all XF identifiers into the Excel XF indexes.
virtual void WriteXmlContents(XclExpXmlStream &rStrm, const XclAddress &rAddress, sal_uInt32 nXFId, sal_uInt16 nRelCol)=0
sal_uInt16 GetStartColAllDefaultCell() const
Return starting column at which all indexes until the end are EXC_XF_DEFAULTCELL .
bool TryMergeXFIds(const XclExpMultiCellBase &rCell)
Tries to merge the XF ID list of the passed cell with the own list.
virtual void WriteContents(XclExpStream &rStrm, sal_uInt16 nRelCol)=0
Derived classes write the remaining contents of the specified cell (without XF index).
XclExpMultiCellBase(sal_uInt16 nRecId, sal_uInt16 nMulRecId, std::size_t nContSize, const XclAddress &rXclPos)
::std::vector< XclExpMultiXFId > XclExpMultiXFIdDeq
sal_uInt16 GetCellCount() const
Returns the number of cells this record represents.
std::size_t mnContSize
Record ID for multiple record variant.
void AppendXFId(const XclExpMultiXFId &rXFId)
Appends the passed XF identifier nCount times to the list of XF identifiers.
virtual void Save(XclExpStream &rStrm) override
Writes the record, calls WriteContents() for each contained cell.
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual sal_uInt16 GetLastXclCol() const override
Returns the column index of the last cell this record describes.
void RemoveUnusedXFIndexes(const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound)
Removes unused Excel XF index(es).
Represents a NOTE record containing the relevant data of a cell note.
Represents a NUMBER record that describes a cell with a double value.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpNumberCell(const XclExpRoot &rRoot, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_uInt32 nForcedXFId, double fValue)
virtual void WriteContents(XclExpStream &rStrm) override
Derived classes write the contents of the specified cell (without XF index).
Base class for buffers containing row or column outline data.
XclExpOutlineBuffer(const XclExpRoot &rRoot, bool bRows)
Constructs the outline buffer.
sal_uInt8 mnCurrLevel
Info for current row and all levels.
const ScOutlineArray * mpScOLArray
bool mbCurrCollapse
Highest level of an open group for current position.
sal_uInt8 GetLevel() const
Returns the highest level of an open group at the last processed position.
void UpdateColRow(SCCOLROW nScPos)
Updates the current state by processing the settings at the passed Calc position.
std::vector< XclExpLevelInfo > maLevelInfos
Pointer to Calc outline array.
bool IsCollapsed() const
Returns true, if a collapsed group ends at the last processed position.
Base record for additional range formula records (i.e.
XclExpRangeFmlaBase(sal_uInt16 nRecId, sal_uInt32 nRecSize, const ScAddress &rScPos)
Constructs the record with a single cell.
virtual XclTokenArrayRef CreateCellTokenArray(const XclExpRoot &rRoot) const =0
Derived classes create the token array for a corresponding FORMULA cell record.
XclAddress maBaseXclPos
Range described by this record.
void Extend(const ScAddress &rScPos)
Extends the cell range to include the passed cell address.
virtual bool IsVolatile() const =0
Derived classes return true, if the own formula contains volatile functions.
bool IsBasePos(sal_uInt16 nXclCol, sal_uInt32 nXclRow) const
Returns true, if the passed cell position is equal to own base position.
void WriteRangeAddress(XclExpStream &rStrm) const
Writes the range address covered by this record.
Base class for all Excel records.
Base class for single records with any content.
Represents an RK or MULRK record that describes cells with a compressed double values.
virtual void WriteContents(XclExpStream &rStrm, sal_uInt16 nRelCol) override
Writes the remaining contents of the specified cell (without XF index).
XclExpRkCell(const XclExpRoot &rRoot, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_uInt32 nForcedXFId, sal_Int32 nRkValue)
virtual bool TryMerge(const XclExpCellBase &rCell) override
Tries to merge the contents of the passed cell to own data.
virtual void WriteXmlContents(XclExpXmlStream &rStrm, const XclAddress &rAddress, sal_uInt32 nXFId, sal_uInt16 nRelCol) override
Access to global data from other classes.
Collects all rows which contain all cells of a sheet.
XclExpRow & GetOrCreateRow(sal_uInt32 nXclRow, bool bRowAlwaysEmpty)
Returns access to the specified ROW record.
virtual void SaveXml(XclExpXmlStream &rStrm) override
sal_uInt8 mnHighestOutlineLevel
DIMENSIONS record for used area.
virtual void Save(XclExpStream &rStrm) override
Writes the DIMENSIONS record, all ROW records and all cell records.
XclExpDimensions & GetDimensions()
::std::map< sal_uInt32, RowRef > RowMap
void CreateRows(SCROW nFirstFreeScRow)
Forces insertion of all ROW records before the passed row.
XclExpRowOutlineBuffer maOutlineBfr
sal_uInt8 GetHighestOutlineLevel() const
void AppendCell(XclExpCellRef const &xCell, bool bIsMergedBase)
Appends the passed cell object to the row that the cell specifies.
std::shared_ptr< XclExpRow > RowRef
XclExpDimensions maDimensions
Buffer for row outline groups.
XclExpRowBuffer(const XclExpRoot &rRoot)
void Finalize(XclExpDefaultRowData &rDefRowData, const ScfUInt16Vec &rColXFIndexes, size_t nStartColAllDefault)
Converts all XF identifiers into the Excel XF indexes and calculates default formats.
The outline buffer for row outlines.
void Update(SCROW nScRow)
Updates the current state by processing the settings of the passed Calc row.
XclExpRowOutlineBuffer(const XclExpRoot &rRoot)
Represents a ROW record and additionally contains all cells records of a row.
sal_uInt16 mnFlags
Row height in twips.
bool IsDefaultable() const
Returns true, if this row may be omitted by using the DEFROWHEIGHT record.
virtual void SaveXml(XclExpXmlStream &rStrm) override
bool mbEnabled
true = Do not add blank cells in Finalize().
sal_uInt32 mnXclRowRpt
Outline Level of row (for OOXML)
XclExpRecordList< XclExpCellBase > maCellList
sal_uInt8 mnOutlineLevel
Default row formatting.
void AppendCell(XclExpCellRef const &xCell, bool bIsMergedBase)
Appends the passed cell object to this row.
sal_uInt32 GetXclRow() const
Returns the excel row index of this ROW record.
sal_uInt16 GetFirstUsedXclCol() const
Returns the column index of the first used cell in this row.
sal_uInt32 GetXclRowRpt() const
bool IsHidden() const
Returns true, if this row is hidden.
bool IsEnabled() const
Returns true, if this row is enabled (will be exported).
void Finalize(const ScfUInt16Vec &rColXFIndexes, ScfUInt16Vec &aXFIndexes, size_t nStartColAllDefault, bool bUpdateProgress)
Converts all XF identifiers into the Excel XF indexes.
sal_uInt16 mnXFIndex
Flags for the ROW record.
bool IsEmpty() const
Returns true, if this row does not contain at least one valid cell.
void DisableIfDefault(const XclExpDefaultRowData &rDefRowData)
Disables this row, if it is defaultable and has the passed default format.
virtual void Save(XclExpStream &rStrm) override
Writes the ROW record if the row is not disabled (see DisableIfDefault() function).
void InsertCell(XclExpCellRef xCell, size_t nPos, bool bIsMergedBase)
Inserts a cell at the specified list position, tries to merge with neighbors.
void WriteCellList(XclExpStream &rStrm)
Writes all cell records of this row.
sal_uInt16 GetFirstFreeXclCol() const
Returns the column index of the first unused cell following all used cells in this row.
sal_uInt16 mnHeight
Excel row index of this row.
XclExpRow(const XclExpRoot &rRoot, sal_uInt32 nXclRow, XclExpRowOutlineBuffer &rOutlineBfr, bool bAlwaysEmpty, bool bHidden, sal_uInt16 nHeight)
Constructs the ROW record and converts the Calc row settings.
void SetXclRowRpt(sal_uInt32 nRpt)
sal_uInt32 mnXclRow
List of cell records for this row.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of the ROW record.
bool IsUnsynced() const
Returns true, if this row contains a manually set height.
sal_uInt16 GetHeight() const
Returns the height of the row in twips.
Caches all SHRFMLA records and provides functions to update their ranges.
o3tl::sorted_vector< const ScTokenArray * > BadTokenArraysType
XclExpShrfmlaRef CreateOrExtendShrfmla(const ScFormulaCell &rScCell, const ScAddress &rScPos)
Tries to create a new or to update an existing SHRFMLA record.
bool IsValidTokenArray(const ScTokenArray &rArray) const
Check for presence of token that's not allowed in Excel's shared formula.
std::unordered_map< const ScTokenArray *, XclExpShrfmlaRef > TokensType
XclExpShrfmlaBuffer(const XclExpRoot &rRoot)
BadTokenArraysType maBadTokens
Map containing the SHRFMLA records.
Represents a SHRFMLA record that contains the token array of a shared formula.
XclExpShrfmla(const XclTokenArrayRef &xTokArr, const ScAddress &rScPos)
Creates a SHRFMLA record that consists of the passed cell address only.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
virtual XclTokenArrayRef CreateCellTokenArray(const XclExpRoot &rRoot) const override
Creates and returns the token array for a corresponding FORMULA cell record.
XclTokenArrayRef mxTokArr
virtual bool IsVolatile() const override
Returns true, if the shared formula contains volatile functions.
sal_uInt8 mnUsedCount
The token array of a shared formula.
void ExtendRange(const ScAddress &rScPos)
Extends the cell range to include the passed cell address.
Base class for all cell records not supporting multiple contents.
virtual sal_uInt32 GetFirstXFId() const override
Return the XF identifier of the cell.
virtual void WriteContents(XclExpStream &rStrm)=0
Derived classes write the contents of the specified cell (without XF index).
virtual void WriteBody(XclExpStream &rStrm) override
Writes cell address, XF index, and calls WriteContents() for each cell.
void SetXFId(sal_uInt32 nXFId)
XclExpSingleCellBase(sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos, sal_uInt32 nXFId)
virtual sal_uInt16 GetLastXclCol() const override
Returns the last column, which is equal to the first column for single cells.
virtual void ConvertXFIndexes(const XclExpRoot &rRoot) override
Converts the XF identifier into the Excel XF index.
std::size_t mnContSize
The XF identifier of the cell formatting.
std::size_t GetContSize() const
void SetContSize(std::size_t nContSize)
sal_uInt32 GetXFId() const
virtual void Save(XclExpStream &rStrm) override
Writes cell address, XF index, and calls WriteContents() for each cell.
virtual bool IsEmpty() const override
Returns true, if this record does not contain at least one valid cell.
This class is used to export Excel record streams.
Represents a STRING record that contains the result of a string formula.
XclExpStringRec(const XclExpRoot &rRoot, const OUString &rResult)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Contains all created TABLEOP records and supports creating or updating them.
XclExpTableopRef CreateOrExtendTableop(const ScTokenArray &rScTokArr, const ScAddress &rScPos)
Tries to update an existing or to create a new TABLEOP record.
void Finalize()
Finalizes all contained TABLEOP records.
XclExpTableopRef TryCreate(const ScAddress &rScPos, const XclMultipleOpRefs &rRefs)
Tries to create a new TABLEOP record, if rRefs contains valid references.
XclExpRecordList< XclExpTableop > maTableopList
XclExpTableopBuffer(const XclExpRoot &rRoot)
Represents a TABLEOP record for a multiple operations range.
sal_uInt16 mnRowInpXclCol
Row index of column input cell.
sal_uInt32 mnRowInpXclRow
Column index of row input cell.
bool TryExtend(const ScAddress &rScPos, const XclMultipleOpRefs &rRefs)
Returns true, if the cell range has been extended to the passed position.
bool mbValid
Type of the multiple operation (Calc constant).
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of the TABLEOP record.
sal_uInt16 mnColInpXclCol
Column index of last appended cell.
virtual bool IsVolatile() const override
Returns true, if the multiple operations range is volatile.
XclExpTableop(const ScAddress &rScPos, const XclMultipleOpRefs &rRefs, sal_uInt8 nScMode)
sal_uInt32 mnColInpXclRow
Column index of column input cell.
virtual void Save(XclExpStream &rStrm) override
Writes the record if it is valid.
void Finalize()
Finalizes the record.
sal_uInt16 mnLastAppXclCol
bool IsAppendable(sal_uInt16 nXclCol, sal_uInt16 nXclRow) const
Returns true, if the passed cell position can be appended to this record.
virtual XclTokenArrayRef CreateCellTokenArray(const XclExpRoot &rRoot) const override
Creates and returns the token array for a corresponding FORMULA cell record.
sal_uInt8 mnScMode
Row index of row input cell.
A record with a single value of type Type.
const Type & GetValue() const
Returns the value of the record.
A 2D cell address struct with Excel column and row indexes.
Contains all possible default row settings.
XclExpDefaultRowData()
Default height for unspecified rows.
sal_uInt16 mnHeight
Default flags for unspecified rows.
bool IsHidden() const
Returns true, if rows are hidden by default.
bool IsUnsynced() const
Returns true, if the rows have a manually set height by default.
XclExpMultiXFId(sal_uInt32 nXFId, sal_uInt16 nCount=1)
Number of XF identifiers.
Data about an outline level.
bool mbHidden
The end position of a group in a level.
XclExpLevelInfo()
true = Group in this level is hidden.
A combination of unique XF identifier with real Excel XF index.
sal_uInt16 mnXFIndex
Temporary XF identifier.
Contains all cell references that can be extracted from a multiple operations formula.
A 2D cell range address struct with Excel column and row indexes.
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
std::shared_ptr< XclExpString > XclExpStringRef
rtl::Reference< XclExpRangeFmlaBase > XclExpRangeFmlaRef
rtl::Reference< XclExpArray > XclExpArrayRef
rtl::Reference< XclExpCellBase > XclExpCellRef
rtl::Reference< XclExpShrfmla > XclExpShrfmlaRef
rtl::Reference< XclExpTableop > XclExpTableopRef
const sal_uInt16 EXC_ROW_HIDDEN
const sal_uInt16 EXC_ROW_UNSYNCED
const sal_uInt8 EXC_OUTLINE_MAX
const sal_uInt16 EXC_DEFROW_UNSYNCED
const sal_uInt16 EXC_DEFROW_HIDDEN