LibreOffice Module sc (master) 1
|
Represents a FORMULA record that describes a cell with a formula. More...
#include <xetable.hxx>
Public Member Functions | |
XclExpFormulaCell (const XclExpRoot &rRoot, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_uInt32 nForcedXFId, const ScFormulaCell &rScFmlaCell, XclExpArrayBuffer &rArrayBfr, XclExpShrfmlaBuffer &rShrfmlaBfr, XclExpTableopBuffer &rTableopBfr) | |
virtual void | Save (XclExpStream &rStrm) override |
Writes the FORMULA record and additional records related to the formula. More... | |
virtual void | SaveXml (XclExpXmlStream &rStrm) override |
Public Member Functions inherited from XclExpSingleCellBase | |
virtual sal_uInt16 | GetLastXclCol () const override |
Returns the last column, which is equal to the first column for single cells. More... | |
virtual sal_uInt32 | GetFirstXFId () const override |
Return the XF identifier of the cell. More... | |
virtual bool | IsEmpty () const override |
Returns true, if this record does not contain at least one valid cell. More... | |
virtual void | ConvertXFIndexes (const XclExpRoot &rRoot) override |
Converts the XF identifier into the Excel XF index. More... | |
virtual void | Save (XclExpStream &rStrm) override |
Writes cell address, XF index, and calls WriteContents() for each cell. More... | |
Public Member Functions inherited from XclExpCellBase | |
const XclAddress & | GetXclPos () const |
Returns the (first) address of the cell(s). More... | |
sal_uInt16 | GetXclCol () const |
Returns the (first) Excel column index of the cell(s). More... | |
sal_uInt32 | GetXclRow () const |
Returns the Excel row index of the cell. More... | |
virtual sal_uInt16 | GetLastXclCol () const =0 |
Derived classes return the column index of the last contained cell. More... | |
virtual sal_uInt32 | GetFirstXFId () const =0 |
Derived classes return the XF identifier of the first contained cell. More... | |
virtual bool | IsEmpty () const =0 |
Derived classes return true, if this record does not contain at least one valid cell. More... | |
virtual bool | IsMultiLineText () const |
Derived classes return whether the cell contains multi-line text. More... | |
virtual bool | TryMerge (const XclExpCellBase &rCell) |
Derived classes try to merge the contents of the passed cell to own data. More... | |
virtual void | ConvertXFIndexes (const XclExpRoot &rRoot)=0 |
Derived classes convert the XF identifier(s) into the Excel XF index(es). More... | |
virtual void | GetBlankXFIndexes (ScfUInt16Vec &rXFIndexes) const |
Derived classes for blank cells insert the Excel XF index(es) into the passed vector. More... | |
virtual void | RemoveUnusedBlankCells (const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound) |
Derived classes for blank cells remove unused Excel XF index(es). More... | |
Public Member Functions inherited from XclExpRecord | |
XclExpRecord (sal_uInt16 nRecId=EXC_ID_UNKNOWN, std::size_t nRecSize=0) | |
XclExpRecord (XclExpRecord const &)=default | |
virtual | ~XclExpRecord () override |
sal_uInt16 | GetRecId () const |
Returns the current record ID. More... | |
std::size_t | GetRecSize () const |
Returns the current record size prediction. More... | |
void | SetRecId (sal_uInt16 nRecId) |
Sets a new record ID. More... | |
void | SetRecSize (std::size_t nRecSize) |
Sets a new record size prediction. More... | |
void | AddRecSize (std::size_t nRecSize) |
Adds a size value to the record size prediction. More... | |
void | SetRecHeader (sal_uInt16 nRecId, std::size_t nRecSize) |
Sets record ID and size with one call. More... | |
virtual void | Save (XclExpStream &rStrm) override |
Writes the record header and calls WriteBody(). More... | |
Public Member Functions inherited from XclExpRecordBase | |
XclExpRecordBase () | |
XclExpRecordBase (XclExpRecordBase const &) | |
XclExpRecordBase (XclExpRecordBase &&) | |
XclExpRecordBase & | operator= (XclExpRecordBase const &) |
XclExpRecordBase & | operator= (XclExpRecordBase &&) noexcept |
virtual | ~XclExpRecordBase () |
virtual void | Save (XclExpStream &rStrm) |
Overwrite this method to do any operation while saving the record. More... | |
virtual void | SaveXml (XclExpXmlStream &rStrm) |
Public Member Functions inherited from salhelper::SimpleReferenceObject | |
SimpleReferenceObject () | |
void | acquire () |
void | release () |
Private Member Functions | |
virtual void | WriteContents (XclExpStream &rStrm) override |
Derived classes write the contents of the specified cell (without XF index). More... | |
Private Attributes | |
ScFormulaCell & | mrScFmlaCell |
XclTokenArrayRef | mxTokArr |
The Calc formula cell. More... | |
XclExpRangeFmlaRef | mxAddRec |
The token array of the formula. More... | |
XclExpRecordRef | mxStringRec |
Additional record for matrix/shared formulas. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from salhelper::SimpleReferenceObject | |
static void * | operator new (std::size_t nSize) |
static void * | operator new (std::size_t nSize, std::nothrow_t const &rNothrow) |
static void | operator delete (void *pPtr) |
static void | operator delete (void *pPtr, std::nothrow_t const &rNothrow) |
Protected Member Functions inherited from XclExpSingleCellBase | |
XclExpSingleCellBase (sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos, sal_uInt32 nXFId) | |
XclExpSingleCellBase (const XclExpRoot &rRoot, sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos, const ScPatternAttr *pPattern, sal_Int16 nScript, sal_uInt32 nForcedXFId) | |
void | SetContSize (std::size_t nContSize) |
std::size_t | GetContSize () const |
void | SetXFId (sal_uInt32 nXFId) |
sal_uInt32 | GetXFId () const |
Protected Member Functions inherited from XclExpCellBase | |
XclExpCellBase (sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos) | |
void | SetXclCol (sal_uInt16 nXclCol) |
Sets this record to a new column position. More... | |
virtual void | WriteBody (XclExpStream &rStrm) |
Writes the body of the record (without record header). More... | |
Protected Member Functions inherited from salhelper::SimpleReferenceObject | |
virtual | ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE |
Protected Attributes inherited from salhelper::SimpleReferenceObject | |
oslInterlockedCount | m_nCount |
Represents a FORMULA record that describes a cell with a formula.
Definition at line 431 of file xetable.hxx.
|
explicit |
Definition at line 816 of file xetable.cxx.
References ScRange::aEnd, ATTR_VALUE_FORMAT(), XclExpArrayBuffer::CreateArray(), XclExpFormulaCompiler::CreateFormula(), XclExpShrfmlaBuffer::CreateOrExtendShrfmla(), XclExpTableopBuffer::CreateOrExtendTableop(), EXC_FMLATYPE_CELL, EXC_XFID_NOTFOUND, XclExpArrayBuffer::FindArray(), Formula, SfxItemSet::Get(), XclExpRoot::GetAddressConverter(), ScFormulaCell::GetCode(), XclRoot::GetCurrScTab(), XclRoot::GetFormatter(), ScFormulaCell::GetFormatType(), XclExpRoot::GetFormulaCompiler(), ScPatternAttr::GetItemSet(), XclExpStringHelper::GetLeadingScriptType(), ScFormulaCell::GetMatColsRows(), ScFormulaCell::GetMatrixFlag(), XclExpRoot::GetNumFmtBuffer(), XclExpNumFmtBuffer::GetStandardFormat(), ScFormulaCell::GetString(), svl::SharedString::getString(), SvNumberFormatter::GetType(), XclExpRoot::GetXFBuffer(), XclExpSingleCellBase::GetXFId(), ScAddress::IncCol(), ScAddress::IncRow(), XclExpXFBuffer::InsertWithNumFmt(), ScFormulaCell::IsMultilineResult(), XclAddress::mnCol, XclAddress::mnRow, mrScFmlaCell, mxAddRec, mxTokArr, NUMBERFORMAT_ENTRY_NOT_FOUND, Reference, XclExpSingleCellBase::SetXFId(), SV_COUNTRY_LANGUAGE_OFFSET, and XclExpAddressConverter::ValidateRange().
|
overridevirtual |
Writes the FORMULA record and additional records related to the formula.
Reimplemented from XclExpSingleCellBase.
Definition at line 916 of file xetable.cxx.
References EXC_ERR_NA, XclExpCellBase::GetXclCol(), XclExpCellBase::GetXclRow(), mxAddRec, mxStringRec, mxTokArr, rStrm, XclExpSingleCellBase::Save(), and XclExpSingleCellBase::SetContSize().
|
overridevirtual |
Reimplemented from XclExpRecordBase.
Definition at line 938 of file xetable.cxx.
References ScRange::aEnd, ScFormulaCell::aPos, ScRange::aStart, ScAddress::Col(), Formula, ScFormulaCell::GetCode(), ScFormulaCell::GetErrCode(), XclXmlUtils::GetFormulaTypeAndValue(), ScFormulaCell::GetMatColsRows(), ScFormulaCell::GetMatrixFlag(), XclExpCellBase::GetXclPos(), ScAddress::IncCol(), ScAddress::IncRow(), lcl_GetStyleId(), mnCol, mnRow, mrScFmlaCell, mxAddRec, mxTokArr, NONE, Reference, ScAddress::Row(), rStrm, sType, XclXmlUtils::ToOString(), and XclXmlUtils::ToOUString().
|
overrideprivatevirtual |
Derived classes write the contents of the specified cell (without XF index).
Implements XclExpSingleCellBase.
Definition at line 1043 of file xetable.cxx.
References EXC_BIFF5, EXC_FORMULA_DEFAULTFLAGS, EXC_FORMULA_RECALC_ALWAYS, EXC_FORMULA_RES_BOOL, EXC_FORMULA_RES_EMPTY, EXC_FORMULA_RES_ERROR, EXC_FORMULA_RES_STRING, EXC_FORMULA_SHARED, EXC_ID_SHRFMLA, ScFormulaCell::GetErrCode(), ScFormulaCell::GetFormatType(), ScFormulaCell::GetString(), svl::SharedString::getString(), ScFormulaCell::GetValue(), XclTools::GetXclErrorCode(), mrScFmlaCell, mxAddRec, mxStringRec, mxTokArr, rStrm, and set_flag().
|
private |
Definition at line 449 of file xetable.hxx.
Referenced by SaveXml(), WriteContents(), and XclExpFormulaCell().
|
private |
The token array of the formula.
Definition at line 451 of file xetable.hxx.
Referenced by Save(), SaveXml(), WriteContents(), and XclExpFormulaCell().
|
private |
Additional record for matrix/shared formulas.
Definition at line 452 of file xetable.hxx.
Referenced by Save(), and WriteContents().
|
private |
The Calc formula cell.
Definition at line 450 of file xetable.hxx.
Referenced by Save(), SaveXml(), WriteContents(), and XclExpFormulaCell().