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" );
844 auto pStyle =
rXMLImport.GetShapeImport()->GetAutoStylesContext()->FindStyleChildContext(
846 OUString aStyleName = pStyle ? pStyle->GetParentName() :
mxAnnotationData->maStyleName;
847 assert(!
rXMLImport.GetShapeImport()->GetAutoStylesContext()->FindStyleChildContext(
848 XmlStyleFamily::SD_GRAPHICS_ID, aStyleName));
849 aStyleName =
rXMLImport.GetStyleDisplayName(XmlStyleFamily::SD_GRAPHICS_ID, aStyleName);
852 OSL_ENSURE(
pObject,
"ScXMLTableRowCellContext::SetAnnotation - cannot get SdrObject from shape" );
860 OSL_ENSURE( !pCaption->GetLogicRect().IsEmpty(),
"ScXMLTableRowCellContext::SetAnnotation - invalid caption rectangle" );
874 if (
auto p =
pObject->GetOutlinerParaObject())
878 aCaptionRect =
pObject->GetLogicRect();
884 nOldShapeCount = xShapes->getCount();
893 std::move(aItemSet), aStyleName, *pOutlinerObj,
899 std::move(aItemSet), aStyleName, *pOutlinerObj,
900 aCaptionRect,
false );
922 const Color* pColor =
nullptr;
930 if( xShapes.is() && (nOldShapeCount < xShapes->getCount()) )
932 uno::Reference< drawing::XShape > xShape;
933 rXMLImport.GetShapeImport()->shapeWithZIndexAdded( xShape, xShapes->getCount() );
942 pSheetData->
AddNoteContentStyle( rContentStyle.mnFamily, rContentStyle.maName, rPos, rContentStyle.maSelection );
958 aDetFunc.
InsertObject( rDetectiveObj.eObjType, rPosition, rDetectiveObj.aSourceRange, rDetectiveObj.bHasError );
959 if (xShapesIndex.is())
961 sal_Int32 nShapes = xShapesIndex->getCount();
962 uno::Reference < drawing::XShape > xShape;
963 rXMLImport.GetShapeImport()->shapeWithZIndexAdded(xShape, nShapes);
993 bool bMayForceNumberformat =
true;
1009 bMayForceNumberformat =
false;
1012 else if (std::isfinite(
fValue))
1025 if (bMayForceNumberformat)
1031 const SCCOL nCurrentCol, const ::std::optional< OUString >& pOUText )
1034 bool bDoIncrement =
true;
1044 OUString aCellString;
1049 else if ( nCurrentCol > 0 && pOUText && !pOUText->isEmpty() )
1050 aCellString = *pOUText;
1052 bDoIncrement =
false;
1055 bDoIncrement =
false;
1057 if(!aCellString.isEmpty())
1074 SAL_WARN(
"sc",
"matrix cell without matrix");
1085 bDoIncrement =
true;
1100 for (
const auto& rxField :
maFields)
1108 bDoIncrement =
true;
1110 else if ( nCurrentCol > 0 && pOUText && !pOUText->isEmpty() )
1113 bDoIncrement =
true;
1116 bDoIncrement =
false;
1147 if (!std::isfinite(
fValue))
1170 const ::std::optional< OUString >& pOUText,
ScAddress& rCurrentPos )
1193 rCurrentPos.
SetRow( rCellPos.
Row() + j );
1203 if( (rCurrentPos.
Col() == 0) && (j > 0) )
1208 if( cellExists(*pDoc, rCurrentPos) )
1210 if( !
bIsCovered || isEmptyOrNote(pDoc, rCurrentPos) )
1214 case util::NumberFormat::TEXT:
1219 case util::NumberFormat::NUMBER:
1221 case util::NumberFormat::CURRENCY:
1222 case util::NumberFormat::TIME:
1223 case util::NumberFormat::DATETIME:
1224 case util::NumberFormat::LOGICAL:
1231 OSL_FAIL(
"no cell type given");
1255 if ((
i == 0) && (rCellPos.
Col() == 0))
1281 switch (aCell.getType())
1299 const Color* pColor;
1310 ::std::optional< OUString > pOUText;
1313 if(
nCellType == util::NumberFormat::TEXT )
1316 pOUText = getOutputString(pDoc, rCellPos);
1334 ScRange aScRange( nStartCol, nStartRow, rCellPos.
Tab(), nEndCol, nEndRow, rCellPos.
Tab() );
1338 else if( cellExists(*pDoc, rCellPos) )
1350 const OUString & aText =
maFormula->first;
1354 if ( aText.isEmpty() )
1358 std::unique_ptr<ScTokenArray> pCode(
new ScTokenArray(*pDoc));
1363 if (nError != FormulaError::NONE)
1365 pCode->SetCodeError(nError);
1371 if (aText.startsWithIgnoreAsciiCase(
"Err:") && aText.getLength() <= 9 &&
1373 GetScImport().GetFormulaErrorConstant( OUString::Concat(
"#ERR") + aText.subView(4) +
"!")) != FormulaError::NONE))
1375 pCode->SetCodeError(nError);
1379 OUString aFormulaNmsp =
maFormula->second;
1381 aFormulaNmsp.clear();
1382 pCode->AssignXMLString( aText, aFormulaNmsp );
1395 if( cellExists(*pDoc, rCellPos) )
1409 rCellPos.
Col(), rCellPos.
Row(),
1431 else if (std::isfinite(
fValue))
1484 else if (
aStr.startsWith(
"Err:"))
1486 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 * CreateNoteFromCaption(ScDocument &rDoc, const ScAddress &rPos, SdrCaptionObj *pCaption, bool bHasStyle)
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.
static ScPostIt * CreateNoteFromObjectData(ScDocument &rDoc, const ScAddress &rPos, SfxItemSet &&oItemSet, const OUString &rStyleName, const OutlinerParaObject &rOutlinerObj, const tools::Rectangle &rCaptionRect, bool bShown)
Creates a cell note based on the passed caption object data.
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)