24 #include <unonames.hxx>
33 #include <com/sun/star/util/CellProtection.hpp>
34 #include <com/sun/star/table/CellOrientation.hpp>
35 #include <com/sun/star/table/CellVertJustify2.hpp>
36 #include <com/sun/star/table/CellHoriJustify.hpp>
37 #include <com/sun/star/table/CellJustifyMethod.hpp>
38 #include <com/sun/star/table/BorderLine2.hpp>
39 #include <com/sun/star/sheet/XSheetConditionalEntry.hpp>
40 #include <com/sun/star/sheet/XSheetCondition.hpp>
41 #include <com/sun/star/beans/XPropertySet.hpp>
42 #include <com/sun/star/container/XIndexAccess.hpp>
45 #include <rtl/ustrbuf.hxx>
46 #include <osl/diagnose.h>
52 #define MAP(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
53 #define MAP_ODF13(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_013, false }
55 #define MAP_EXT(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false }
57 #define MAP_EXT_I(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, true }
58 #define MAP_END() { nullptr, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFSVER_010, false }
193 bool bEnableFoFontFamily,
194 ::std::vector< XMLPropertyState >& rProperties,
195 const uno::Reference< beans::XPropertySet >& rPropSet )
const
239 for(
auto& rProperty : rProperties )
242 if (propertyState->
mnIndex != -1)
289 if (pPadding && pPadding_Bottom && pPadding_Left && pPadding_Right && pPadding_Top)
291 sal_Int32 nBottom = 0, nTop = 0, nLeft = 0, nRight = 0;
292 if ((pPadding_Bottom->
maValue >>= nBottom) &&
293 (pPadding_Left->
maValue >>= nLeft) &&
294 (pPadding_Right->
maValue >>= nRight) &&
295 (pPadding_Top->
maValue >>= nTop))
297 if ((nBottom == nTop) && (nLeft == nRight) && (nTop == nLeft))
300 pPadding_Bottom->
maValue.clear();
302 pPadding_Left->
maValue.clear();
304 pPadding_Right->
maValue.clear();
317 if( pBorder_Left && pBorder_Right && pBorder_Top && pBorder_Bottom )
319 table::BorderLine2 aLeft, aRight, aTop, aBottom;
321 pBorder_Left->
maValue >>= aLeft;
322 pBorder_Right->
maValue >>= aRight;
324 pBorder_Bottom->
maValue >>= aBottom;
325 if( aLeft.Color == aRight.Color && aLeft.InnerLineWidth == aRight.InnerLineWidth &&
326 aLeft.OuterLineWidth == aRight.OuterLineWidth && aLeft.LineDistance == aRight.LineDistance &&
327 aLeft.Color == aTop.Color && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
328 aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
329 aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
330 aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance &&
331 aLeft.LineStyle == aRight.LineStyle && aLeft.LineStyle == aTop.LineStyle &&
332 aLeft.LineStyle == aBottom.LineStyle && aLeft.LineWidth == aRight.LineWidth &&
333 aLeft.LineWidth == aTop.LineWidth && aLeft.LineWidth == aBottom.LineWidth )
338 pBorder_Right->
maValue.clear();
342 pBorder_Bottom->
maValue.clear();
356 if( pAllBorderWidthState )
358 if( pLeftBorderWidthState && pRightBorderWidthState && pTopBorderWidthState && pBottomBorderWidthState )
360 table::BorderLine2 aLeft, aRight, aTop, aBottom;
362 pLeftBorderWidthState->
maValue >>= aLeft;
363 pRightBorderWidthState->
maValue >>= aRight;
364 pTopBorderWidthState->
maValue >>= aTop;
365 pBottomBorderWidthState->
maValue >>= aBottom;
366 if( aLeft.InnerLineWidth == aRight.InnerLineWidth && aLeft.OuterLineWidth == aRight.OuterLineWidth &&
367 aLeft.LineDistance == aRight.LineDistance && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
368 aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
369 aLeft.InnerLineWidth == aBottom.InnerLineWidth && aLeft.OuterLineWidth == aBottom.OuterLineWidth &&
370 aLeft.LineDistance == aBottom.LineDistance && aLeft.LineWidth == aRight.LineWidth &&
371 aLeft.LineWidth == aTop.LineWidth && aLeft.LineWidth == aBottom.LineWidth )
373 pLeftBorderWidthState->
mnIndex = -1;
374 pLeftBorderWidthState->
maValue.clear();
375 pRightBorderWidthState->
mnIndex = -1;
376 pRightBorderWidthState->
maValue.clear();
377 pTopBorderWidthState->
mnIndex = -1;
378 pTopBorderWidthState->
maValue.clear();
379 pBottomBorderWidthState->
mnIndex = -1;
380 pBottomBorderWidthState->
maValue.clear();
384 pAllBorderWidthState->
mnIndex = -1;
385 pAllBorderWidthState->
maValue.clear();
390 pAllBorderWidthState->
mnIndex = -1;
391 pAllBorderWidthState->
maValue.clear();
403 pParaAdjustLast->
maValue.clear();
413 pSWBorder_Left->
maValue.clear();
418 pSWBorder_Right->
maValue.clear();
420 if (pSWBorder_Bottom)
422 pSWBorder_Bottom->
mnIndex = -1;
423 pSWBorder_Bottom->
maValue.clear();
428 pSWBorder_Top->
maValue.clear();
430 if (pSWAllBorderWidthState)
432 pSWAllBorderWidthState->
mnIndex = -1;
433 pSWAllBorderWidthState->
maValue.clear();
435 if (pSWLeftBorderWidthState)
437 pSWLeftBorderWidthState->
mnIndex = -1;
438 pSWLeftBorderWidthState->
maValue.clear();
440 if (pSWRightBorderWidthState)
442 pSWRightBorderWidthState->
mnIndex = -1;
443 pSWRightBorderWidthState->
maValue.clear();
445 if (pSWTopBorderWidthState)
447 pSWTopBorderWidthState->
mnIndex = -1;
448 pSWTopBorderWidthState->
maValue.clear();
450 if (pSWBottomBorderWidthState)
452 pSWBottomBorderWidthState->
mnIndex = -1;
453 pSWBottomBorderWidthState->
maValue.clear();
459 pParaMarginLeft->
maValue.clear();
461 if (pParaMarginLeftRel)
463 pParaMarginLeftRel->
mnIndex = -1;
464 pParaMarginLeftRel->
maValue.clear();
466 if (pParaMarginRight)
468 pParaMarginRight->
mnIndex = -1;
469 pParaMarginRight->
maValue.clear();
471 if (pParaMarginRightRel)
473 pParaMarginRightRel->
mnIndex = -1;
474 pParaMarginRightRel->
maValue.clear();
479 pParaMarginTop->
maValue.clear();
481 if (pParaMarginTopRel)
483 pParaMarginTopRel->
mnIndex = -1;
484 pParaMarginTopRel->
maValue.clear();
486 if (pParaMarginBottom)
488 pParaMarginBottom->
mnIndex = -1;
489 pParaMarginBottom->
maValue.clear();
491 if (pParaMarginBottomRel)
493 pParaMarginBottomRel->
mnIndex = -1;
494 pParaMarginBottomRel->
maValue.clear();
498 if (pDiagonalTLBRWidthState)
500 pDiagonalTLBRWidthState->
mnIndex = -1;
501 pDiagonalTLBRWidthState->
maValue.clear();
503 if (pDiagonalBLTRWidthState)
505 pDiagonalBLTRWidthState->
mnIndex = -1;
506 pDiagonalBLTRWidthState->
maValue.clear();
518 const ::std::vector< XMLPropertyState > * ,
529 const ::std::vector< XMLPropertyState > * ,
535 ( rProperty.
maValue >>= sURL ) &&
541 sal_uInt32 nPropIndex = rProperty.
mnIndex;
560 ::std::vector< XMLPropertyState >& ,
561 const uno::Reference< beans::XPropertySet >& )
const
582 const ::std::vector< XMLPropertyState > * ,
604 const ::std::vector< XMLPropertyState > * ,
613 const ::std::vector< XMLPropertyState >& rProperties,
620 if (nFamily == XmlStyleFamily::TABLE_CELL)
622 for(
const auto& rProperty : rProperties)
625 sal_Int16 nContextID(aPropMapper->GetEntryContextId(rProperty.mnIndex));
630 sal_Int32 nNumberFormat = 0;
631 if (rProperty.maValue >>= nNumberFormat)
634 if (!sAttrValue.isEmpty())
637 aPropMapper->GetEntryNameSpace(rProperty.mnIndex),
638 aPropMapper->GetEntryXMLName(rProperty.mnIndex),
647 else if (nFamily == XmlStyleFamily::TABLE_TABLE)
649 for(
const auto& rProperty : rProperties)
652 sal_Int16 nContextID(aPropMapper->GetEntryContextId(rProperty.mnIndex));
658 if (rProperty.maValue >>= sName)
661 aPropMapper->GetEntryNameSpace(rProperty.mnIndex),
662 aPropMapper->GetEntryXMLName(rProperty.mnIndex),
673 const css::uno::Reference< css::xml::sax::XDocumentHandler > & rHandler,
675 const std::vector< XMLPropertyState >& rProperties,
682 if (nFamily != XmlStyleFamily::TABLE_CELL)
685 for(
const auto& rProperty : rProperties)
687 if (rProperty.mnIndex != -1)
694 uno::Reference<container::XIndexAccess> xIndex( rProperty.maValue, uno::UNO_QUERY );
697 sal_Int32 nConditionCount(xIndex->getCount());
698 for (sal_Int32 nCondition = 0; nCondition < nConditionCount; ++nCondition)
700 uno::Reference <sheet::XSheetConditionalEntry> xSheetConditionalEntry(xIndex->getByIndex(nCondition), uno::UNO_QUERY);
701 if (xSheetConditionalEntry.is())
703 OUString sStyleName(xSheetConditionalEntry->getStyleName());
704 uno::Reference <sheet::XSheetCondition> xSheetCondition(xSheetConditionalEntry, uno::UNO_QUERY);
705 if (xSheetCondition.is())
707 sheet::ConditionOperator aOperator = xSheetCondition->getOperator();
708 if (aOperator != sheet::ConditionOperator_NONE)
710 if (aOperator == sheet::ConditionOperator_FORMULA)
712 OUString sCondition =
"is-true-formula("
713 + xSheetCondition->getFormula1()
717 OUString sOUBaseAddress;
720 xSheetCondition->getSourcePosition(), pDoc, FormulaGrammar::CONV_OOO );
727 if (aOperator == sheet::ConditionOperator_BETWEEN ||
728 aOperator == sheet::ConditionOperator_NOT_BETWEEN)
730 if (aOperator == sheet::ConditionOperator_BETWEEN)
731 sCondition =
"cell-content-is-between(";
733 sCondition =
"cell-content-is-not-between(";
734 sCondition += xSheetCondition->getFormula1()
736 + xSheetCondition->getFormula2()
741 sCondition =
"cell-content()";
744 case sheet::ConditionOperator_LESS:
747 case sheet::ConditionOperator_GREATER:
750 case sheet::ConditionOperator_LESS_EQUAL:
753 case sheet::ConditionOperator_GREATER_EQUAL:
756 case sheet::ConditionOperator_EQUAL:
759 case sheet::ConditionOperator_NOT_EQUAL:
767 sCondition += xSheetCondition->getFormula1();
771 OUString sOUBaseAddress;
791 rScXMLExport(rTempScXMLExport)
902 const css::uno::Any& r1,
903 const css::uno::Any& r2 )
const
905 util::CellProtection aCellProtection1, aCellProtection2;
907 if((r1 >>= aCellProtection1) && (r2 >>= aCellProtection2))
909 return ((aCellProtection1.IsHidden == aCellProtection2.IsHidden) &&
910 (aCellProtection1.IsLocked == aCellProtection2.IsLocked) &&
911 (aCellProtection1.IsFormulaHidden == aCellProtection2.IsFormulaHidden));
917 const OUString& rStrImpValue,
918 css::uno::Any& rValue,
923 util::CellProtection aCellProtection;
924 bool bDefault(
false);
925 if (!rValue.hasValue())
927 aCellProtection.IsHidden =
false;
928 aCellProtection.IsLocked =
true;
929 aCellProtection.IsFormulaHidden =
false;
930 aCellProtection.IsPrintHidden =
false;
933 if ((rValue >>= aCellProtection) || bDefault)
937 aCellProtection.IsFormulaHidden =
false;
938 aCellProtection.IsHidden =
false;
939 aCellProtection.IsLocked =
false;
940 rValue <<= aCellProtection;
945 aCellProtection.IsFormulaHidden =
true;
946 aCellProtection.IsHidden =
true;
947 aCellProtection.IsLocked =
true;
948 rValue <<= aCellProtection;
953 aCellProtection.IsFormulaHidden =
false;
954 aCellProtection.IsHidden =
false;
955 aCellProtection.IsLocked =
true;
956 rValue <<= aCellProtection;
961 aCellProtection.IsFormulaHidden =
true;
962 aCellProtection.IsHidden =
false;
963 aCellProtection.IsLocked =
false;
964 rValue <<= aCellProtection;
970 while (i < rStrImpValue.getLength() && rStrImpValue[i] !=
' ')
972 OUString sFirst(rStrImpValue.copy(0, i));
973 OUString sSecond(rStrImpValue.copy(i + 1));
974 aCellProtection.IsFormulaHidden =
false;
975 aCellProtection.IsHidden =
false;
976 aCellProtection.IsLocked =
false;
978 aCellProtection.IsLocked =
true;
980 aCellProtection.IsFormulaHidden =
true;
981 rValue <<= aCellProtection;
990 OUString& rStrExpValue,
991 const css::uno::Any& rValue,
995 util::CellProtection aCellProtection;
997 if(rValue >>= aCellProtection)
999 if (!(aCellProtection.IsFormulaHidden || aCellProtection.IsHidden || aCellProtection.IsLocked))
1004 else if (aCellProtection.IsHidden)
1011 else if (aCellProtection.IsLocked && !aCellProtection.IsFormulaHidden)
1016 else if (aCellProtection.IsFormulaHidden && !aCellProtection.IsLocked)
1021 else if (aCellProtection.IsFormulaHidden && aCellProtection.IsLocked)
1024 rStrExpValue +=
" ";
1038 const css::uno::Any& r1,
1039 const css::uno::Any& r2 )
const
1041 util::CellProtection aCellProtection1, aCellProtection2;
1043 if((r1 >>= aCellProtection1) && (r2 >>= aCellProtection2))
1045 return (aCellProtection1.IsPrintHidden == aCellProtection2.IsPrintHidden);
1051 const OUString& rStrImpValue,
1052 css::uno::Any& rValue,
1055 bool bRetval(
false);
1056 util::CellProtection aCellProtection;
1057 bool bDefault(
false);
1058 if (!rValue.hasValue())
1060 aCellProtection.IsHidden =
false;
1061 aCellProtection.IsLocked =
true;
1062 aCellProtection.IsFormulaHidden =
false;
1063 aCellProtection.IsPrintHidden =
false;
1066 if ((rValue >>= aCellProtection) || bDefault)
1071 aCellProtection.IsPrintHidden = !bValue;
1072 rValue <<= aCellProtection;
1081 OUString& rStrExpValue,
1082 const css::uno::Any& rValue,
1085 bool bRetval(
false);
1087 util::CellProtection aCellProtection;
1088 if(rValue >>= aCellProtection)
1090 OUStringBuffer sValue;
1092 rStrExpValue = sValue.makeStringAndClear();
1104 const css::uno::Any& r1,
1105 const css::uno::Any& r2 )
const
1107 sal_Int32 nVal1(0), nVal2(0);
1109 if((r1 >>= nVal1) && (r2 >>= nVal2))
1110 return (nVal1 == nVal2);
1115 const OUString& rStrImpValue,
1116 css::uno::Any& rValue,
1119 bool bRetval =
false;
1121 sal_Int32
nValue = table::CellJustifyMethod::AUTO;
1124 nValue = table::CellJustifyMethod::AUTO;
1130 nValue = table::CellJustifyMethod::DISTRIBUTE;
1141 OUString& rStrExpValue,
1142 const css::uno::Any& rValue,
1146 bool bRetval =
false;
1148 if (rValue >>= nVal)
1152 case table::CellJustifyMethod::AUTO:
1158 case table::CellJustifyMethod::DISTRIBUTE:
1178 const css::uno::Any& r1,
1179 const css::uno::Any& r2 )
const
1181 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1183 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1184 return (aHoriJustify1 == aHoriJustify2);
1189 const OUString& rStrImpValue,
1190 css::uno::Any& rValue,
1193 bool bRetval(
false);
1195 table::CellHoriJustify
nValue = table::CellHoriJustify_LEFT;
1197 if (nValue != table::CellHoriJustify_REPEAT)
1201 nValue = table::CellHoriJustify_LEFT;
1207 nValue = table::CellHoriJustify_RIGHT;
1213 nValue = table::CellHoriJustify_CENTER;
1219 nValue = table::CellHoriJustify_BLOCK;
1231 OUString& rStrExpValue,
1232 const css::uno::Any& rValue,
1235 table::CellHoriJustify nVal;
1236 bool bRetval(
false);
1242 case table::CellHoriJustify_REPEAT:
1243 case table::CellHoriJustify_LEFT:
1249 case table::CellHoriJustify_RIGHT:
1255 case table::CellHoriJustify_CENTER:
1261 case table::CellHoriJustify_BLOCK:
1282 const css::uno::Any& r1,
1283 const css::uno::Any& r2 )
const
1285 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1287 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1288 return (aHoriJustify1 == aHoriJustify2);
1293 const OUString& rStrImpValue,
1294 css::uno::Any& rValue,
1297 bool bRetval(
false);
1305 rValue <<= table::CellHoriJustify_STANDARD;
1313 OUString& rStrExpValue,
1314 const css::uno::Any& rValue,
1317 table::CellHoriJustify nVal;
1318 bool bRetval(
false);
1322 if (nVal == table::CellHoriJustify_STANDARD)
1342 const css::uno::Any& r1,
1343 const css::uno::Any& r2 )
const
1345 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1347 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1348 return (aHoriJustify1 == aHoriJustify2);
1353 const OUString& rStrImpValue,
1354 css::uno::Any& rValue,
1357 bool bRetval(
false);
1365 rValue <<= table::CellHoriJustify_REPEAT;
1373 OUString& rStrExpValue,
1374 const css::uno::Any& rValue,
1377 table::CellHoriJustify nVal;
1378 bool bRetval(
false);
1382 if (nVal == table::CellHoriJustify_REPEAT)
1402 const css::uno::Any& r1,
1403 const css::uno::Any& r2 )
const
1405 table::CellOrientation aOrientation1, aOrientation2;
1407 if((r1 >>= aOrientation1) && (r2 >>= aOrientation2))
1408 return (aOrientation1 == aOrientation2);
1413 const OUString& rStrImpValue,
1414 css::uno::Any& rValue,
1417 bool bRetval(
false);
1419 table::CellOrientation
nValue;
1422 nValue = table::CellOrientation_STANDARD;
1428 nValue = table::CellOrientation_STACKED;
1437 OUString& rStrExpValue,
1438 const css::uno::Any& rValue,
1441 table::CellOrientation nVal;
1442 bool bRetval(
false);
1448 case table::CellOrientation_STACKED :
1471 const css::uno::Any& r1,
1472 const css::uno::Any& r2 )
const
1474 sal_Int32 aAngle1 = 0, aAngle2 = 0;
1476 if((r1 >>= aAngle1) && (r2 >>= aAngle2))
1477 return (aAngle1 == aAngle2);
1482 const OUString& rStrImpValue,
1483 css::uno::Any& rValue,
1486 bool bRetval(
false);
1499 OUString& rStrExpValue,
1500 const css::uno::Any& rValue,
1504 bool bRetval(
false);
1508 rStrExpValue = OUString::number(nVal / 100);
1520 const css::uno::Any& r1,
1521 const css::uno::Any& r2 )
const
1523 sal_Int32 aReference1(0), aReference2(0);
1525 if((r1 >>= aReference1) && (r2 >>= aReference2))
1526 return (aReference1 == aReference2);
1531 const OUString& rStrImpValue,
1532 css::uno::Any& rValue,
1535 bool bRetval(
false);
1540 nValue = table::CellVertJustify2::STANDARD;
1546 nValue = table::CellVertJustify2::BOTTOM;
1552 nValue = table::CellVertJustify2::TOP;
1558 nValue = table::CellVertJustify2::CENTER;
1567 OUString& rStrExpValue,
1568 const css::uno::Any& rValue,
1572 bool bRetval(
false);
1578 case table::CellVertJustify2::BOTTOM :
1584 case table::CellVertJustify2::CENTER :
1590 case table::CellVertJustify2::STANDARD :
1596 case table::CellVertJustify2::TOP :
1617 const css::uno::Any& r1,
1618 const css::uno::Any& r2 )
const
1620 sal_Int32 aReference1(0), aReference2(0);
1622 if((r1 >>= aReference1) && (r2 >>= aReference2))
1623 return (aReference1 == aReference2);
1628 const OUString& rStrImpValue,
1629 css::uno::Any& rValue,
1632 bool bRetval(
false);
1637 nValue = table::CellVertJustify2::STANDARD;
1643 nValue = table::CellVertJustify2::BOTTOM;
1649 nValue = table::CellVertJustify2::TOP;
1655 nValue = table::CellVertJustify2::CENTER;
1661 nValue = table::CellVertJustify2::BLOCK;
1670 OUString& rStrExpValue,
1671 const css::uno::Any& rValue,
1675 bool bRetval(
false);
1681 case table::CellVertJustify2::BOTTOM :
1687 case table::CellVertJustify2::CENTER :
1693 case table::CellVertJustify2::STANDARD :
1699 case table::CellVertJustify2::TOP :
1705 case table::CellVertJustify2::BLOCK :
1726 const css::uno::Any& r1,
1727 const css::uno::Any& r2 )
const
1729 bool aBreak1 =
false, aBreak2 =
false;
1731 if((r1 >>= aBreak1) && (r2 >>= aBreak2))
1732 return (aBreak1 == aBreak2);
1737 const OUString& rStrImpValue,
1738 css::uno::Any& rValue,
1741 bool bRetval(
false);
1761 OUString& rStrExpValue,
1762 const css::uno::Any& rValue,
1765 bool bRetval(
false);
1786 const css::uno::Any& r1,
1787 const css::uno::Any& r2 )
const
1793 const OUString& rStrImpValue,
1794 css::uno::Any& rValue,
1797 bool bRetval(
false);
1814 OUString& rStrExpValue,
1815 const css::uno::Any& rValue,
1818 bool bRetval(
false);
1838 OSL_FAIL(
"should never be called");
1843 const css::uno::Any& ,
1846 OSL_FAIL(
"should never be called");
1855 const css::uno::Any& r1,
1856 const css::uno::Any& r2 )
const
1862 const OUString& rStrImpValue,
1863 css::uno::Any& rValue,
1866 bool bRetval(
false);
1883 OUString& rStrExpValue,
1884 const css::uno::Any& rValue,
1887 bool bRetval(
false);
#define XML_SC_ISTEXTWRAPPED
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
#define XML_TYPE_TEXT_SHADOW
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const
#define CTF_SC_RIGHTPADDING
XML_BORDER_LINE_WIDTH_LEFT
#define XML_TYPE_BUILDIN_CMP_ONLY
#define MAP_ODF13(name, prefix, token, type, context)
#define CTF_PARALEFTMARGIN_REL
virtual void exportStyleAttributes(SvXMLAttributeList &rAttrList, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
SvXMLExport & GetExport() const
#define XML_TYPE_BORDER_WIDTH
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define XML_SC_TYPE_HORIJUSTIFY
#define CTF_SC_DIAGONALBLTRWIDTHS
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define CTF_SC_BOTTOMBORDERWIDTH
#define CTF_SC_BOTTOMBORDER
#define XML_SC_TYPE_BREAKBEFORE
virtual void exportStyleContent(const css::uno::Reference< css::xml::sax::XDocumentHandler > &rHandler, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const
virtual ~XmlScPropHdl_IsTextWrapped() override
#define CTF_SC_MASTERPAGENAME
#define XML_SC_TYPE_HORIJUSTIFYSOURCE
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
const rtl::Reference< XMLPropertySetMapper > & GetCellStylesPropertySetMapper() const
#define MAP_EXT_I(name, prefix, token, type, context)
constexpr sal_uInt16 XML_NAMESPACE_XLINK
virtual ~XmlScPropHdl_Orientation() override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define CTF_SC_DIAGONALBLTR
virtual void exportStyleAttributes(SvXMLAttributeList &rAttrList, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const override
virtual ~ScXMLAutoStylePoolP() override
constexpr sal_uInt16 XML_NAMESPACE_LO_EXT
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
constexpr sal_uInt16 XML_NAMESPACE_CSS3TEXT
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
#define CTF_PARABOTTOMMARGIN_REL
#define CTF_SC_NUMBERFORMAT
#define MAP(name, prefix, token, type, context)
#define XML_TYPE_PROP_TABLE_ROW
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
XML_USE_OPTIMAL_ROW_HEIGHT
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define XML_SC_TYPE_CELLPROTECTION
static void GetStringFromAddress(OUString &rString, const ScAddress &rAddress, const ScDocument *pDocument, formula::FormulaGrammar::AddressConvention eConv, sal_Unicode cSeparator= ' ', bool bAppendStr=false, ScRefFlags nFormatFlags=ScRefFlags::VALID|ScRefFlags::TAB_3D)
Range to String core.
#define XML_TYPE_PROP_TABLE_COLUMN
#define CTF_TOPBORDERWIDTH
#define MID_FLAG_MERGE_ATTRIBUTE
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define SC_UNONAME_CELLHJUS_METHOD
#define XML_SC_TYPE_VERTJUSTIFY_METHOD
#define XML_TYPE_MEASURE16
#define XML_TYPE_PROP_PARAGRAPH
#define XML_SC_TYPE_ROTATEANGLE
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define CTF_SC_LEFTBORDER
void AddAttribute(sal_uInt16 nPrefix, const char *pName, const OUString &rValue)
#define CTF_PARATOPMARGIN
virtual ~XmlScPropHdl_HoriJustify() override
#define MAP_EXT(name, prefix, token, type, context)
#define CTF_SC_ALLPADDING
#define MID_FLAG_MULTI_PROPERTY
ScXMLExport & rScXMLExport
#define CTF_SC_TOPPADDING
#define CTF_SC_LEFTPADDING
#define XML_SC_TYPE_VERTJUSTIFY
virtual OUString getDataStyleName(const sal_Int32 nNumberFormat, bool bTimeFormat=false) const
const XMLPropertyMapEntry aXMLScFromXLSRowStylesProperties[]
#define MID_FLAG_ELEMENT_ITEM
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define XML_TYPE_COLORAUTO
#define XML_SC_TYPE_HORIJUSTIFYREPEAT
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
virtual ~XMLScPropHdlFactory() override
virtual ~XmlScPropHdl_BreakBefore() override
#define XML_SC_TYPE_VERTICAL
virtual ~ScXMLRowExportPropertyMapper() override
const rtl::Reference< XMLPropertySetMapper > & GetTableStylesPropertySetMapper() const
#define XML_TYPE_BOOL_FALSE
virtual void exportStyleContent(const css::uno::Reference< css::xml::sax::XDocumentHandler > &rHandler, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const override
const XMLPropertyMapEntry aXMLScTableStylesImportProperties[]
constexpr sal_uInt16 XML_NAMESPACE_TABLE_EXT
#define CTF_LEFTBORDERWIDTH
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
constexpr sal_uInt16 XML_NAMESPACE_FO
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
#define XML_SC_TYPE_EQUAL
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
constexpr sal_uInt16 XML_NAMESPACE_TEXT
virtual ~XmlScPropHdl_HoriJustifyRepeat() override
#define CTF_PARATOPMARGIN_REL
#define CTF_SC_ALLBORDERWIDTH
#define CTF_SC_ROWBREAKBEFORE
#define CTF_SC_DIAGONALTLBR
XML_DIAGONAL_BL_TR_WIDTHS
#define XML_TYPE_ATTRIBUTE_CONTAINER
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual ~ScXMLCellExportPropertyMapper() override
XML_DIAGONAL_TL_BR_WIDTHS
ScXMLAutoStylePoolP(ScXMLExport &rScXMLExport)
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
const XMLPropertyMapEntry aXMLScColumnStylesProperties[]
#define CTF_SC_TOPBORDERWIDTH
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define SC_UNONAME_CELLVJUS_METHOD
#define MID_FLAG_SPECIAL_ITEM
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define CTF_SC_LEFTBORDERWIDTH
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
#define XML_TYPE_NUMBER16
virtual ~XmlScPropHdl_Vertical() override
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define CTF_SC_RIGHTBORDER
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
#define XML_TYPE_TEXT_WRITING_MODE
#define XML_TYPE_PROP_TABLE
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
static bool convertBool(bool &rBool, std::u16string_view rString)
#define MID_FLAG_MERGE_PROPERTY
#define XML_SC_TYPE_PRINTCONTENT
OUString EncodeStyleName(const OUString &rName, bool *pEncoded=nullptr) const
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
ScXMLRowExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
ScDocument * GetDocument()
#define XML_SC_TYPE_ORIENTATION
#define CTF_SC_VALIDATION
#define XML_TYPE_ISTRANSPARENT
XML_BORDER_LINE_WIDTH_RIGHT
#define CTF_SC_DIAGONALTLBRWIDTH
#define CTF_PARALEFTMARGIN
#define CTF_SC_ROWOPTIMALHEIGHT
virtual ~XmlScPropHdl_PrintContent() override
constexpr sal_uInt16 XML_NAMESPACE_TABLE
ScXMLTableExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
#define CTF_SC_DIAGONALBLTRWIDTH
#define XML_TYPE_PROP_TABLE_CELL
#define CTF_SC_IMPORT_MAP
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
#define CTF_PARARIGHTMARGIN_REL
ScXMLColumnExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
ScXMLCellExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
#define SC_UNONAME_HYPERLINK
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
const XMLPropertyMapEntry aXMLScRowStylesImportProperties[]
#define CTF_PARARIGHTMARGIN
virtual ~ScXMLTableExportPropertyMapper() override
XML_BORDER_LINE_WIDTH_BOTTOM
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
const XMLPropertyMapEntry aXMLScCellStylesProperties[]
XML_GLYPH_ORIENTATION_VERTICAL
#define XML_TYPE_COLORTRANSPARENT
virtual ~XmlScPropHdl_RotateAngle() override
virtual ~XmlScPropHdl_HoriJustifySource() override
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
#define CTF_ALLBORDERWIDTH
#define CTF_BOTTOMBORDERWIDTH
virtual ~ScXMLColumnExportPropertyMapper() override
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
virtual ~XmlScPropHdl_CellProtection() override
const XMLPropertyMapEntry aXMLScTableStylesProperties[]
#define CTF_PARABOTTOMMARGIN
#define CTF_RIGHTBORDERWIDTH
#define CTF_SC_DIAGONALTLBRWIDTHS
virtual ~XmlScPropHdl_RotateReference() override
virtual ~XmlScPropHdl_VertJustify() override
XML_BORDER_LINE_WIDTH_TOP
#define CTF_SD_SHAPE_PARA_ADJUST
constexpr sal_uInt16 XML_NAMESPACE_STYLE
#define CTF_SC_RIGHTBORDERWIDTH
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
#define XML_SC_TYPE_ROTATEREFERENCE
bool any2bool(const css::uno::Any &rAny)
virtual ~XmlScPropHdl_JustifyMethod() override
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
#define CTF_PARA_ADJUSTLAST
const XMLPropertyMapEntry aXMLScRowStylesProperties[]
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const override
#define XML_SC_TYPE_HORIJUSTIFY_METHOD
void PutHdlCache(sal_Int32 nType, const XMLPropertyHandler *pHdl) const
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)
#define CTF_SC_BOTTOMPADDING