27#include <document.hxx>
48#include <tokenarray.hxx>
89#include <com/sun/star/util/NumberFormat.hpp>
91#include <com/sun/star/sheet/ValidationType.hpp>
92#include <com/sun/star/sheet/ValidationAlertStyle.hpp>
94#include <rtl/ustrbuf.hxx>
95#include <osl/diagnose.h>
106 maItemSet(rEditEngine.GetEmptyItemSet()) {}
116 const bool bTempIsCovered,
117 const sal_Int32 nTempRepeatedRows ) :
121 fValue(
std::numeric_limits<double>::quiet_NaN()),
148 std::optional<OUString> xStyleName;
149 std::optional<OUString> xCurrencySymbol;
150 if ( rAttrList.is() )
152 for (
auto &it : *rAttrList)
154 switch ( it.getToken() )
157 xStyleName = it.toString();
184 std::max( it.toInt32(),
static_cast<sal_Int32
>(1) ) ));
191 if(it.isString(
"error" ) )
235 OSL_ENSURE(!
maStringValue,
"here should be only one string value");
259 OSL_ENSURE(!
maFormula,
"here should be only one formula");
260 OUString aFormula, aFormulaNmsp;
267 xCurrencySymbol = it.toString();
277 if (
nCellType == util::NumberFormat::TEXT)
279 if(
nCellType == util::NumberFormat::DATETIME)
280 nCellType = util::NumberFormat::UNDEFINED;
307 return( rCellPos.
Col() >= 0 && rCellPos.
Row() >= 0 &&
316 sal_Int32 nEnd = nBegin + rSpan.size();
325 maFields.push_back(std::make_unique<Field>(std::move(
pData)));
340 if (rStyleName.isEmpty())
349 sal_Int32 nEntryCount = xMapper->GetEntryCount();
363 const std::vector<XMLPropertyState>& rProps = pStyle->
GetProperties();
381 std::unique_ptr<SfxPoolItem> pPoolItem;
384 for (
const auto& rProp : rProps)
386 if (rProp.mnIndex == -1 || rProp.mnIndex >= nEntryCount)
389 const OUString& rName = xMapper->GetEntryAPIName(rProp.mnIndex);
394 if (nLastItemID != pEntry->
mnItemID && pPoolItem)
410 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
420 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
430 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
440 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
448 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
456 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
464 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
472 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
480 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
488 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
496 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
504 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
512 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
520 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
528 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
536 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
544 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
554 pPoolItem->PutValue(rProp.maValue, pEntry->
mnFlag);
593 const OUString& rURL,
const OUString& rRep,
const OUString& rStyleName,
const OUString& rTargetFrame)
595 OUString aAbsURL =
GetScImport().GetAbsoluteReference(rURL);
596 std::unique_ptr<SvxURLField> pURLField(
new SvxURLField(aAbsURL, rRep, SvxURLFormat::Repr));
597 pURLField->SetTargetFrame(rTargetFrame);
632 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
651 SAL_WARN(
"sc",
"ScXMLTableRowCellContext::createFastChildContext: subtables are not supported");
677 "ScXMLTableRowCellContext::CreateChildContext - multiple annotations in one cell");
685 if (!pContext && !bTextP)
699 pTableShapeImport->
SetCell(aCellPos);
715 SCCOL mergeToCol = rScAddress.
Col() + nCols;
716 SCROW mergeToRow = rScAddress.
Row() + nRows;
718 bool bInBounds = rScAddress.
Col() <= pDoc->
MaxCol() && rScAddress.
Row() <= pDoc->
MaxRow() &&
719 mergeToCol <= pDoc->
MaxCol() && mergeToRow <= pDoc->
MaxRow();
723 mergeToCol, mergeToRow, rScAddress.
Tab() );
746ScValidErrorStyle validAlertToValidError(
const sheet::ValidationAlertStyle eVAlertStyle )
749 switch( eVAlertStyle )
751 case sheet::ValidationAlertStyle_STOP: eVErrStyle =
SC_VALERR_STOP;
break;
753 case sheet::ValidationAlertStyle_MACRO: eVErrStyle =
SC_VALERR_MACRO;
break;
834 sal_Int32 nOldShapeCount = xShapes.is() ? xShapes->getCount() : 0;
837 "ScXMLTableRowCellContext::SetAnnotation - shape without drawing page" );
840 OSL_ENSURE(
mxAnnotationData->mxShapes.get() == xShapes.get(),
"ScXMLTableRowCellContext::SetAnnotation - different drawing pages" );
842 OSL_ENSURE(
pObject,
"ScXMLTableRowCellContext::SetAnnotation - cannot get SdrObject from shape" );
850 OSL_ENSURE( !pCaption->GetLogicRect().IsEmpty(),
"ScXMLTableRowCellContext::SetAnnotation - invalid caption rectangle" );
864 if (
auto p =
pObject->GetOutlinerParaObject())
868 aCaptionRect =
pObject->GetLogicRect();
874 nOldShapeCount = xShapes->getCount();
883 std::move(aItemSet), *pOutlinerObj,
889 std::move(aItemSet), *pOutlinerObj,
890 aCaptionRect,
false );
912 const Color* pColor =
nullptr;
920 if( xShapes.is() && (nOldShapeCount < xShapes->getCount()) )
922 uno::Reference< drawing::XShape > xShape;
923 rXMLImport.GetShapeImport()->shapeWithZIndexAdded( xShape, xShapes->getCount() );
932 pSheetData->
AddNoteContentStyle( rContentStyle.mnFamily, rContentStyle.maName, rPos, rContentStyle.maSelection );
948 aDetFunc.
InsertObject( rDetectiveObj.eObjType, rPosition, rDetectiveObj.aSourceRange, rDetectiveObj.bHasError );
949 if (xShapesIndex.is())
951 sal_Int32 nShapes = xShapesIndex->getCount();
952 uno::Reference < drawing::XShape > xShape;
953 rXMLImport.GetShapeImport()->shapeWithZIndexAdded(xShape, nShapes);
983 bool bMayForceNumberformat =
true;
999 bMayForceNumberformat =
false;
1002 else if (std::isfinite(
fValue))
1015 if (bMayForceNumberformat)
1021 const SCCOL nCurrentCol, const ::std::optional< OUString >& pOUText )
1024 bool bDoIncrement =
true;
1034 OUString aCellString;
1039 else if ( nCurrentCol > 0 && pOUText && !pOUText->isEmpty() )
1040 aCellString = *pOUText;
1042 bDoIncrement =
false;
1045 bDoIncrement =
false;
1047 if(!aCellString.isEmpty())
1064 SAL_WARN(
"sc",
"matrix cell without matrix");
1075 bDoIncrement =
true;
1090 for (
const auto& rxField :
maFields)
1098 bDoIncrement =
true;
1100 else if ( nCurrentCol > 0 && pOUText && !pOUText->isEmpty() )
1103 bDoIncrement =
true;
1106 bDoIncrement =
false;
1137 if (!std::isfinite(
fValue))
1160 const ::std::optional< OUString >& pOUText,
ScAddress& rCurrentPos )
1183 rCurrentPos.
SetRow( rCellPos.
Row() + j );
1193 if( (rCurrentPos.
Col() == 0) && (j > 0) )
1198 if( cellExists(*pDoc, rCurrentPos) )
1200 if( !
bIsCovered || isEmptyOrNote(pDoc, rCurrentPos) )
1204 case util::NumberFormat::TEXT:
1209 case util::NumberFormat::NUMBER:
1211 case util::NumberFormat::CURRENCY:
1212 case util::NumberFormat::TIME:
1213 case util::NumberFormat::DATETIME:
1214 case util::NumberFormat::LOGICAL:
1221 OSL_FAIL(
"no cell type given");
1245 if ((
i == 0) && (rCellPos.
Col() == 0))
1271 switch (aCell.getType())
1289 const Color* pColor;
1300 ::std::optional< OUString > pOUText;
1303 if(
nCellType == util::NumberFormat::TEXT )
1306 pOUText = getOutputString(pDoc, rCellPos);
1324 ScRange aScRange( nStartCol, nStartRow, rCellPos.
Tab(), nEndCol, nEndRow, rCellPos.
Tab() );
1328 else if( cellExists(*pDoc, rCellPos) )
1340 const OUString & aText =
maFormula->first;
1344 if ( aText.isEmpty() )
1348 std::unique_ptr<ScTokenArray> pCode(
new ScTokenArray(*pDoc));
1353 if (nError != FormulaError::NONE)
1355 pCode->SetCodeError(nError);
1361 if (aText.startsWithIgnoreAsciiCase(
"Err:") && aText.getLength() <= 9 &&
1363 GetScImport().GetFormulaErrorConstant( OUString::Concat(
"#ERR") + aText.subView(4) +
"!")) != FormulaError::NONE))
1365 pCode->SetCodeError(nError);
1369 OUString aFormulaNmsp =
maFormula->second;
1371 aFormulaNmsp.clear();
1372 pCode->AssignXMLString( aText, aFormulaNmsp );
1385 if( cellExists(*pDoc, rCellPos) )
1399 rCellPos.
Col(), rCellPos.
Row(),
1421 else if (std::isfinite(
fValue))
1474 else if (
aStr.startsWith(
"Err:"))
1476 else if (
aStr.startsWith(
"#"))
::std::vector< ScMyImpDetectiveObj > ScMyImpDetectiveObjVec
OUString GetText(LineEnd eEnd=LINEEND_LF) const
std::unique_ptr< EditTextObject > CreateTextObject()
void SetText(const OUString &rStr)
sal_Int32 GetParagraphCount() const
void QuickInsertField(const SvxFieldItem &rFld, const ESelection &rSel)
void InsertParagraph(sal_Int32 nPara, const EditTextObject &rTxtObj, const bool bAppend=false)
void QuickSetAttribs(const SfxItemSet &rSet, const ESelection &rSel)
void SetIgnoreBlank(bool bSet)
static ScConditionMode GetModeFromApi(css::sheet::ConditionOperator nOperator)
void SetSrcString(const OUString &rNew)
void InsertObject(ScDetectiveObjType eType, const ScAddress &rPosition, const ScRange &rSource, bool bRedLine)
Accessor class to ScDocument.
void setEditCell(const ScAddress &rPos, std::unique_ptr< EditTextObject > pEditText)
void setStringCell(const ScAddress &rPos, const OUString &rStr)
void setFormulaCell(const ScAddress &rPos, const OUString &rFormula, formula::FormulaGrammar::Grammar eGrammar, const double *pResult=nullptr)
void setNumericCell(const ScAddress &rPos, double fVal)
ScSheetLimits & GetSheetLimits() const
SC_DLLPUBLIC sal_uInt32 GetNumberFormat(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC SCCOL MaxCol() const
SC_DLLPUBLIC ScDocumentPool * GetPool()
SC_DLLPUBLIC void ApplyPatternAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScPatternAttr &rAttr)
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC ScFieldEditEngine & GetEditEngine()
SC_DLLPUBLIC void DoMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bDeleteCaptions=true)
formula::FormulaGrammar::Grammar GetStorageGrammar() const
SC_DLLPUBLIC void ApplyPattern(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr &rAttr)
SfxObjectShell * GetDocumentShell() const
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
SC_DLLPUBLIC sal_uLong AddValidationEntry(const ScValidationData &rNew)
SC_DLLPUBLIC SvNumberFormatter * GetFormatTable() const
SC_DLLPUBLIC const ScFormulaCell * GetFormulaCell(const ScAddress &rPos) const
SC_DLLPUBLIC CellType GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC sfx2::LinkManager * GetLinkManager()
void IncXMLImportedFormulaCount(sal_uInt64 nVal)
void SetTextCurrentDefaults(const EditTextObject &rTextObject)
SetText and apply defaults already set.
Use this guard when performing something from the API that might query values from external reference...
Matrix data type that can store values of mixed types.
void SetAttributes(std::optional< OUString > pStyleName, std::optional< OUString > pCurrency, const sal_Int16 nCellType)
void AddCell(const ScAddress &rAddress)
void AddColumn(bool bIsCovered)
const ScAddress & GetCurrentCellPos() const
css::uno::Reference< css::drawing::XShapes > const & GetCurrentXShapes()
bool IsPartOfMatrix(const ScAddress &rScAddress) const
void AddMatrixRange(const SCCOL nStartColumn, const SCROW nStartRow, const SCCOL nEndColumn, const SCROW nEndRow, const OUString &rFormula, const OUString &rFormulaNmsp, const formula::FormulaGrammar::Grammar)
static ScPostIt * CreateNoteFromObjectData(ScDocument &rDoc, const ScAddress &rPos, SfxItemSet &&oItemSet, const OutlinerParaObject &rOutlinerObj, const tools::Rectangle &rCaptionRect, bool bShown)
Creates a cell note based on the passed caption object data.
static ScPostIt * CreateNoteFromCaption(ScDocument &rDoc, const ScAddress &rPos, SdrCaptionObj *pCaption)
Creates a cell note using the passed caption drawing object.
static ScPostIt * CreateNoteFromString(ScDocument &rDoc, const ScAddress &rPos, const OUString &rNoteText, bool bShown, bool bAlwaysCreateCaption, sal_uInt32 nPostItId=0)
Creates a cell note based on the passed string and inserts it into the document.
SfxItemSet & GetItemSet()
Additional class containing cell annotation data.
void SetAuthor(const OUString &rAuthor)
Sets a new author date for this note.
void SetDate(const OUString &rDate)
Sets a new creation date for this note.
void BlockSheet(SCTAB nTab)
void AddTextStyle(const OUString &rName, const ScAddress &rCellPos, const ESelection &rSelection)
void AddNoteContentStyle(XmlStyleFamily nFamily, const OUString &rName, const ScAddress &rCellPos, const ESelection &rSelection)
void HandleNoteStyles(const OUString &rStyleName, const OUString &rTextName, const ScAddress &rCellPos)
static bool SC_DLLPUBLIC isMultiline(std::u16string_view rStr)
void SetListType(sal_Int16 nListType)
void SetInput(const OUString &rTitle, const OUString &rMsg)
void SetError(const OUString &rTitle, const OUString &rMsg, ScValidErrorStyle eStyle)
This context handles <text:p> element inside <table:table-cell>.
Provide mapping from ODF text formatting styles to EditEngine's, for rich-text cell content import.
const Entry * getEntryByAPIName(const OUString &rAPIName) const
This class exists only to provide GetScImport() to its derived classes.
ScXMLImport & GetScImport()
void ProgressBarIncrement()
ScMyStylesImportHelper * GetStylesImportHelper()
ScDocumentImport & GetDoc()
bool SetNullDateOnUnitConverter()
FormulaError GetFormulaErrorConstant(const OUString &rStr) const
const ScXMLEditAttributeMap & GetEditAttributeMap() const
ScDocument * GetDocument()
bool GetValidation(const OUString &sName, ScMyImportValidation &aValidation)
void SetRangeOverflowType(ErrCode nType)
void ExtractFormulaNamespaceGrammar(OUString &rFormula, OUString &rFormulaNmsp, ::formula::FormulaGrammar::Grammar &reGrammar, const OUString &rAttrValue, bool bRestrictToExternalNmsp=false) const
Extracts the formula string, the formula grammar namespace URL, and a grammar enum value from the pas...
static sal_Int16 GetCellType(const char *rStrValue, const sal_Int32 nStrLength)
void SetCellRangeSource(const ScAddress &rPosition)
void HasSpecialCaseFormulaText()
virtual ~ScXMLTableRowCellContext() override
std::pair< OUString, OUString > FormulaWithNamespace
void PushFormat(sal_Int32 nBegin, sal_Int32 nEnd, const OUString &rStyleName)
void PushParagraphFieldDocTitle(const OUString &rStyleName)
void PushParagraphFieldSheetName(const OUString &rStyleName)
void PutFormulaCell(const ScAddress &rScCurrentPos)
ScEditEngineDefaulter * mpEditEngine
unformatted first paragraph, for better performance.
std::unique_ptr< ScMyImpDetectiveObjVec > pDetectiveObjVec
void AddNonFormulaCell(const ScAddress &rScCellPos)
OUStringBuffer maParagraph
void SetFormulaCell(ScFormulaCell *pFCell) const
void PutValueCell(const ScAddress &rScCurrentPos)
ScXMLTableRowCellContext(ScXMLImport &rImport, const rtl::Reference< sax_fastparser::FastAttributeList > &rAttrList, const bool bIsCovered, const sal_Int32 nRepeatedRows)
bool mbCheckWithCompilerForError
OUString GetFirstParagraph() const
void AddTextAndValueCell(const ScAddress &rScCellPos, const ::std::optional< OUString > &pOUText, ScAddress &rScCurrentPos)
void SetAnnotation(const ScAddress &rPosition)
std::optional< OUString > maFirstParagraph
formula::FormulaGrammar::Grammar eGrammar
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
std::optional< FormulaWithNamespace > maFormula
bool IsPossibleErrorString() const
void PushParagraphSpan(std::u16string_view rSpan, const OUString &rStyleName)
std::unique_ptr< ScXMLAnnotationData > mxAnnotationData
bool CellsAreRepeated() const
void PutTextCell(const ScAddress &rScCurrentPos, const SCCOL nCurrentCol, const ::std::optional< OUString > &pOUText)
void DoMerge(const ScAddress &rScCellPos, const SCCOL nCols, const SCROW nRows)
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
std::optional< OUString > maContentValidationName
office:string-value attribute
void AddFormulaCell(const ScAddress &rScCellPos)
std::optional< OUString > maStringValue
table:formula attribute
void SetContentValidation(const ScRange &rScRange)
void PushParagraphField(std::unique_ptr< SvxFieldData > pData, const OUString &rStyleName)
void PushParagraphFieldDate(const OUString &rStyleName)
bool mbPossibleEmptyDisplay
void PushParagraphFieldURL(const OUString &rURL, const OUString &rRep, const OUString &rStyleName, const OUString &rTargetFrame)
std::unique_ptr< ScMyImpCellRangeSource > pCellRangeSource
std::vector< std::unique_ptr< ParaFormat > > maFormats
void SetDetectiveObj(const ScAddress &rPosition)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
SvXMLImport & GetImport()
const SvXMLStyleContext * FindStyleChildContext(XmlStyleFamily nFamily, const OUString &rName, bool bCreateIndex=false) const
const ::std::vector< XMLPropertyState > & GetProperties() const
static SvXMLShapeContext * CreateGroupChildContext(SvXMLImport &rImport, sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList, css::uno::Reference< css::drawing::XShapes > const &rShapes, bool bTemporaryShape=false)
void SetOnTable(const bool bTempOnTable)
void SetCell(const ScAddress &rAddress)
static void convertDuration(OUStringBuffer &rBuffer, const double fTime)
void InsertFileLink(sfx2::SvBaseLink &, SvBaseLinkObjectType nFileType, std::u16string_view rFileNm, const OUString *pFilterNm=nullptr, const OUString *pRange=nullptr)
SharedString intern(const OUString &rStr)
constexpr TypedWhichId< SvxContourItem > EE_CHAR_OUTLINE(EE_CHAR_START+8)
constexpr TypedWhichId< SvxKerningItem > EE_CHAR_KERNING(EE_CHAR_START+12)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CJK(EE_CHAR_START+17)
constexpr TypedWhichId< SvxFieldItem > EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
constexpr TypedWhichId< SvxUnderlineItem > EE_CHAR_UNDERLINE(EE_CHAR_START+5)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
constexpr TypedWhichId< SvxAutoKernItem > EE_CHAR_PAIRKERNING(EE_CHAR_START+11)
constexpr TypedWhichId< SvxShadowedItem > EE_CHAR_SHADOW(EE_CHAR_START+9)
constexpr TypedWhichId< SvxOverlineItem > EE_CHAR_OVERLINE(EE_CHAR_START+29)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CTL(EE_CHAR_START+16)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT(EE_CHAR_START+4)
constexpr TypedWhichId< SvxColorItem > EE_CHAR_COLOR(EE_CHAR_START+0)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CTL(EE_CHAR_START+22)
constexpr TypedWhichId< SvxCrossedOutItem > EE_CHAR_STRIKEOUT(EE_CHAR_START+6)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC(EE_CHAR_START+7)
constexpr TypedWhichId< SvxEmphasisMarkItem > EE_CHAR_EMPHASISMARK(EE_CHAR_START+25)
constexpr TypedWhichId< SvxEscapementItem > EE_CHAR_ESCAPEMENT(EE_CHAR_START+10)
constexpr sal_uInt16 EE_CHAR_END(EE_CHAR_START+32)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CTL(EE_CHAR_START+20)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CJK(EE_CHAR_START+21)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CJK(EE_CHAR_START+15)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CJK(EE_CHAR_START+23)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CTL(EE_CHAR_START+18)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CTL(EE_CHAR_START+24)
constexpr TypedWhichId< SvxCharScaleWidthItem > EE_CHAR_FONTWIDTH(EE_CHAR_START+3)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE(EE_CHAR_START+14)
constexpr TypedWhichId< SvxWordLineModeItem > EE_CHAR_WLM(EE_CHAR_START+13)
constexpr TypedWhichId< SvxCharReliefItem > EE_CHAR_RELIEF(EE_CHAR_START+26)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CJK(EE_CHAR_START+19)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO(EE_CHAR_START+1)
EmbeddedObjectRef * pObject
#define LANGUAGE_DONTKNOW
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
std::unique_ptr< sal_Int32[]> pData
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
XML_CONTENT_VALIDATION_NAME
XML_NUMBER_MATRIX_COLUMNS_SPANNED
XML_NUMBER_COLUMNS_SPANNED
XML_NUMBER_COLUMNS_REPEATED
XML_NUMBER_MATRIX_ROWS_SPANNED
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
#define SCWARN_IMPORT_ROW_OVERFLOW
#define SCWARN_IMPORT_COLUMN_OVERFLOW
constexpr TypedWhichId< SfxUInt32Item > ATTR_VALIDDATA(153)
formula::FormulaGrammar::Grammar eGrammar2
css::sheet::ValidationType aValidationType
css::sheet::ConditionOperator aOperator
css::sheet::ValidationAlertStyle aAlertStyle
OUString sBaseCellAddress
formula::FormulaGrammar::Grammar eGrammar1
This is very similar to ScCellValue, except that it references the original value instead of copying ...
ScFormulaCell * getFormula() const
SCCOL GetMaxColCount() const
Field(const Field &)=delete
ParaFormat(const ScEditEngineDefaulter &rEditEngine)
::boost::intrusive_ptr< ScMatrix > ScMatrixRef
constexpr OUStringLiteral PERCENT(u"Percent")
#define XML_ELEMENT(prefix, name)