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, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
53#define MAP_ODF13(name,prefix,token,type,context) { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_013, false }
55#define MAP_EXT(name,prefix,token,type,context) { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false }
57#define MAP_EXT_I(name,prefix,token,type,context) { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, true }
58#define MAP_END() { nullptr }
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)
901 const css::uno::Any& r1,
902 const css::uno::Any& r2 )
const
904 util::CellProtection aCellProtection1, aCellProtection2;
906 if((r1 >>= aCellProtection1) && (r2 >>= aCellProtection2))
908 return ((aCellProtection1.IsHidden == aCellProtection2.IsHidden) &&
909 (aCellProtection1.IsLocked == aCellProtection2.IsLocked) &&
910 (aCellProtection1.IsFormulaHidden == aCellProtection2.IsFormulaHidden));
916 const OUString& rStrImpValue,
917 css::uno::Any& rValue,
922 util::CellProtection aCellProtection;
923 bool bDefault(
false);
924 if (!rValue.hasValue())
926 aCellProtection.IsHidden =
false;
927 aCellProtection.IsLocked =
true;
928 aCellProtection.IsFormulaHidden =
false;
929 aCellProtection.IsPrintHidden =
false;
932 if ((rValue >>= aCellProtection) || bDefault)
936 aCellProtection.IsFormulaHidden =
false;
937 aCellProtection.IsHidden =
false;
938 aCellProtection.IsLocked =
false;
939 rValue <<= aCellProtection;
944 aCellProtection.IsFormulaHidden =
true;
945 aCellProtection.IsHidden =
true;
946 aCellProtection.IsLocked =
true;
947 rValue <<= aCellProtection;
952 aCellProtection.IsFormulaHidden =
false;
953 aCellProtection.IsHidden =
false;
954 aCellProtection.IsLocked =
true;
955 rValue <<= aCellProtection;
960 aCellProtection.IsFormulaHidden =
true;
961 aCellProtection.IsHidden =
false;
962 aCellProtection.IsLocked =
false;
963 rValue <<= aCellProtection;
969 while (
i < rStrImpValue.getLength() && rStrImpValue[
i] !=
' ')
971 OUString sFirst(rStrImpValue.copy(0,
i));
972 OUString sSecond(rStrImpValue.copy(
i + 1));
973 aCellProtection.IsFormulaHidden =
false;
974 aCellProtection.IsHidden =
false;
975 aCellProtection.IsLocked =
false;
977 aCellProtection.IsLocked =
true;
979 aCellProtection.IsFormulaHidden =
true;
980 rValue <<= aCellProtection;
989 OUString& rStrExpValue,
990 const css::uno::Any& rValue,
994 util::CellProtection aCellProtection;
996 if(rValue >>= aCellProtection)
998 if (!(aCellProtection.IsFormulaHidden || aCellProtection.IsHidden || aCellProtection.IsLocked))
1003 else if (aCellProtection.IsHidden)
1010 else if (aCellProtection.IsLocked && !aCellProtection.IsFormulaHidden)
1015 else if (aCellProtection.IsFormulaHidden && !aCellProtection.IsLocked)
1020 else if (aCellProtection.IsFormulaHidden && aCellProtection.IsLocked)
1023 rStrExpValue +=
" ";
1037 const css::uno::Any& r1,
1038 const css::uno::Any& r2 )
const
1040 util::CellProtection aCellProtection1, aCellProtection2;
1042 if((r1 >>= aCellProtection1) && (r2 >>= aCellProtection2))
1044 return (aCellProtection1.IsPrintHidden == aCellProtection2.IsPrintHidden);
1050 const OUString& rStrImpValue,
1051 css::uno::Any& rValue,
1054 bool bRetval(
false);
1055 util::CellProtection aCellProtection;
1056 bool bDefault(
false);
1057 if (!rValue.hasValue())
1059 aCellProtection.IsHidden =
false;
1060 aCellProtection.IsLocked =
true;
1061 aCellProtection.IsFormulaHidden =
false;
1062 aCellProtection.IsPrintHidden =
false;
1065 if ((rValue >>= aCellProtection) || bDefault)
1070 aCellProtection.IsPrintHidden = !bValue;
1071 rValue <<= aCellProtection;
1080 OUString& rStrExpValue,
1081 const css::uno::Any& rValue,
1084 bool bRetval(
false);
1086 util::CellProtection aCellProtection;
1087 if(rValue >>= aCellProtection)
1089 OUStringBuffer sValue;
1091 rStrExpValue = sValue.makeStringAndClear();
1103 const css::uno::Any& r1,
1104 const css::uno::Any& r2 )
const
1106 sal_Int32 nVal1(0), nVal2(0);
1108 if((r1 >>= nVal1) && (r2 >>= nVal2))
1109 return (nVal1 == nVal2);
1114 const OUString& rStrImpValue,
1115 css::uno::Any& rValue,
1118 bool bRetval =
false;
1120 sal_Int32
nValue = table::CellJustifyMethod::AUTO;
1123 nValue = table::CellJustifyMethod::AUTO;
1129 nValue = table::CellJustifyMethod::DISTRIBUTE;
1140 OUString& rStrExpValue,
1141 const css::uno::Any& rValue,
1145 bool bRetval =
false;
1147 if (rValue >>= nVal)
1151 case table::CellJustifyMethod::AUTO:
1157 case table::CellJustifyMethod::DISTRIBUTE:
1177 const css::uno::Any& r1,
1178 const css::uno::Any& r2 )
const
1180 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1182 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1183 return (aHoriJustify1 == aHoriJustify2);
1188 const OUString& rStrImpValue,
1189 css::uno::Any& rValue,
1192 bool bRetval(
false);
1194 table::CellHoriJustify
nValue = table::CellHoriJustify_LEFT;
1196 if (
nValue != table::CellHoriJustify_REPEAT)
1200 nValue = table::CellHoriJustify_LEFT;
1206 nValue = table::CellHoriJustify_RIGHT;
1212 nValue = table::CellHoriJustify_CENTER;
1218 nValue = table::CellHoriJustify_BLOCK;
1230 OUString& rStrExpValue,
1231 const css::uno::Any& rValue,
1234 table::CellHoriJustify nVal;
1235 bool bRetval(
false);
1241 case table::CellHoriJustify_REPEAT:
1242 case table::CellHoriJustify_LEFT:
1248 case table::CellHoriJustify_RIGHT:
1254 case table::CellHoriJustify_CENTER:
1260 case table::CellHoriJustify_BLOCK:
1281 const css::uno::Any& r1,
1282 const css::uno::Any& r2 )
const
1284 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1286 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1287 return (aHoriJustify1 == aHoriJustify2);
1292 const OUString& rStrImpValue,
1293 css::uno::Any& rValue,
1296 bool bRetval(
false);
1304 rValue <<= table::CellHoriJustify_STANDARD;
1312 OUString& rStrExpValue,
1313 const css::uno::Any& rValue,
1316 table::CellHoriJustify nVal;
1317 bool bRetval(
false);
1321 if (nVal == table::CellHoriJustify_STANDARD)
1341 const css::uno::Any& r1,
1342 const css::uno::Any& r2 )
const
1344 table::CellHoriJustify aHoriJustify1, aHoriJustify2;
1346 if((r1 >>= aHoriJustify1) && (r2 >>= aHoriJustify2))
1347 return (aHoriJustify1 == aHoriJustify2);
1352 const OUString& rStrImpValue,
1353 css::uno::Any& rValue,
1356 bool bRetval(
false);
1364 rValue <<= table::CellHoriJustify_REPEAT;
1372 OUString& rStrExpValue,
1373 const css::uno::Any& rValue,
1376 table::CellHoriJustify nVal;
1377 bool bRetval(
false);
1381 if (nVal == table::CellHoriJustify_REPEAT)
1401 const css::uno::Any& r1,
1402 const css::uno::Any& r2 )
const
1404 table::CellOrientation aOrientation1, aOrientation2;
1406 if((r1 >>= aOrientation1) && (r2 >>= aOrientation2))
1407 return (aOrientation1 == aOrientation2);
1412 const OUString& rStrImpValue,
1413 css::uno::Any& rValue,
1416 bool bRetval(
false);
1418 table::CellOrientation
nValue;
1421 nValue = table::CellOrientation_STANDARD;
1427 nValue = table::CellOrientation_STACKED;
1436 OUString& rStrExpValue,
1437 const css::uno::Any& rValue,
1440 table::CellOrientation nVal;
1441 bool bRetval(
false);
1447 case table::CellOrientation_STACKED :
1470 const css::uno::Any& r1,
1471 const css::uno::Any& r2 )
const
1473 sal_Int32 aAngle1 = 0, aAngle2 = 0;
1475 if((r1 >>= aAngle1) && (r2 >>= aAngle2))
1476 return (aAngle1 == aAngle2);
1481 const OUString& rStrImpValue,
1482 css::uno::Any& rValue,
1485 bool bRetval(
false);
1498 OUString& rStrExpValue,
1499 const css::uno::Any& rValue,
1503 bool bRetval(
false);
1507 rStrExpValue = OUString::number(nVal / 100);
1519 const css::uno::Any& r1,
1520 const css::uno::Any& r2 )
const
1522 sal_Int32 aReference1(0), aReference2(0);
1524 if((r1 >>= aReference1) && (r2 >>= aReference2))
1525 return (aReference1 == aReference2);
1530 const OUString& rStrImpValue,
1531 css::uno::Any& rValue,
1534 bool bRetval(
false);
1539 nValue = table::CellVertJustify2::STANDARD;
1545 nValue = table::CellVertJustify2::BOTTOM;
1551 nValue = table::CellVertJustify2::TOP;
1557 nValue = table::CellVertJustify2::CENTER;
1566 OUString& rStrExpValue,
1567 const css::uno::Any& rValue,
1571 bool bRetval(
false);
1577 case table::CellVertJustify2::BOTTOM :
1583 case table::CellVertJustify2::CENTER :
1589 case table::CellVertJustify2::STANDARD :
1595 case table::CellVertJustify2::TOP :
1616 const css::uno::Any& r1,
1617 const css::uno::Any& r2 )
const
1619 sal_Int32 aReference1(0), aReference2(0);
1621 if((r1 >>= aReference1) && (r2 >>= aReference2))
1622 return (aReference1 == aReference2);
1627 const OUString& rStrImpValue,
1628 css::uno::Any& rValue,
1631 bool bRetval(
false);
1636 nValue = table::CellVertJustify2::STANDARD;
1642 nValue = table::CellVertJustify2::BOTTOM;
1648 nValue = table::CellVertJustify2::TOP;
1654 nValue = table::CellVertJustify2::CENTER;
1660 nValue = table::CellVertJustify2::BLOCK;
1669 OUString& rStrExpValue,
1670 const css::uno::Any& rValue,
1674 bool bRetval(
false);
1680 case table::CellVertJustify2::BOTTOM :
1686 case table::CellVertJustify2::CENTER :
1692 case table::CellVertJustify2::STANDARD :
1698 case table::CellVertJustify2::TOP :
1704 case table::CellVertJustify2::BLOCK :
1725 const css::uno::Any& r1,
1726 const css::uno::Any& r2 )
const
1728 bool aBreak1 =
false, aBreak2 =
false;
1730 if((r1 >>= aBreak1) && (r2 >>= aBreak2))
1731 return (aBreak1 == aBreak2);
1736 const OUString& rStrImpValue,
1737 css::uno::Any& rValue,
1740 bool bRetval(
false);
1760 OUString& rStrExpValue,
1761 const css::uno::Any& rValue,
1764 bool bRetval(
false);
1766 if(::cppu::any2bool(rValue))
1785 const css::uno::Any& r1,
1786 const css::uno::Any& r2 )
const
1788 return (::cppu::any2bool(r1) == ::cppu::any2bool(r2));
1792 const OUString& rStrImpValue,
1793 css::uno::Any& rValue,
1796 bool bRetval(
false);
1813 OUString& rStrExpValue,
1814 const css::uno::Any& rValue,
1817 bool bRetval(
false);
1819 if (::cppu::any2bool(rValue))
1837 OSL_FAIL(
"should never be called");
1842 const css::uno::Any& ,
1845 OSL_FAIL(
"should never be called");
1854 const css::uno::Any& r1,
1855 const css::uno::Any& r2 )
const
1857 return (::cppu::any2bool(r1) == ::cppu::any2bool(r2));
1861 const OUString& rStrImpValue,
1862 css::uno::Any& rValue,
1865 bool bRetval(
false);
1882 OUString& rStrExpValue,
1883 const css::uno::Any& rValue,
1886 bool bRetval(
false);
1888 if (::cppu::any2bool(rValue))
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.
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
ScXMLAutoStylePoolP(ScXMLExport &rScXMLExport)
ScXMLExport & rScXMLExport
virtual void exportStyleAttributes(comphelper::AttributeList &rAttrList, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const override
virtual ~ScXMLAutoStylePoolP() override
virtual void handleSpecialItem(comphelper::AttributeList &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
ScXMLCellExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
virtual ~ScXMLCellExportPropertyMapper() override
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
virtual void ContextFilter(bool bEnableFoFontFamily, ::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
ScXMLColumnExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
virtual ~ScXMLColumnExportPropertyMapper() override
virtual void handleSpecialItem(comphelper::AttributeList &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
ScDocument * GetDocument()
const rtl::Reference< XMLPropertySetMapper > & GetTableStylesPropertySetMapper() const
const rtl::Reference< XMLPropertySetMapper > & GetCellStylesPropertySetMapper() const
virtual void ContextFilter(bool bEnableFoFontFamily, ::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
ScXMLRowExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
virtual ~ScXMLRowExportPropertyMapper() override
virtual void handleSpecialItem(comphelper::AttributeList &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 ~ScXMLTableExportPropertyMapper() override
ScXMLTableExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper)
SvXMLExport & GetExport() const
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 void exportStyleAttributes(comphelper::AttributeList &rAttrList, XmlStyleFamily nFamily, const ::std::vector< XMLPropertyState > &rProperties, const SvXMLExportPropertyMapper &rPropExp, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const
virtual void ContextFilter(bool bEnableFoFontFamily, ::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
virtual OUString getDataStyleName(const sal_Int32 nNumberFormat, bool bTimeFormat=false) const
OUString EncodeStyleName(const OUString &rName, bool *pEncoded=nullptr) const
void PutHdlCache(sal_Int32 nType, const XMLPropertyHandler *pHdl) const
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const override
virtual ~XMLScPropHdlFactory() override
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 ~XmlScPropHdl_BreakBefore() override
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
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
virtual ~XmlScPropHdl_CellProtection() override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_HoriJustifyRepeat() override
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
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_HoriJustifySource() override
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
virtual bool equals(const css::uno::Any &r1, const css::uno::Any &r2) const override
virtual ~XmlScPropHdl_HoriJustify() override
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 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 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
virtual ~XmlScPropHdl_IsTextWrapped() override
virtual ~XmlScPropHdl_JustifyMethod() 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
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_Orientation() 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
virtual bool exportXML(OUString &rStrExpValue, const 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 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
virtual ~XmlScPropHdl_PrintContent() override
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_RotateAngle() override
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
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_RotateReference() override
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
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 importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_VertJustify() override
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
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
virtual ~XmlScPropHdl_Vertical() override
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)
static bool convertBool(bool &rBool, std::u16string_view rString)
#define CTF_SD_SHAPE_PARA_ADJUST
XML_DIAGONAL_BL_TR_WIDTHS
XML_BORDER_LINE_WIDTH_BOTTOM
XML_BORDER_LINE_WIDTH_RIGHT
XML_DIAGONAL_TL_BR_WIDTHS
XML_USE_OPTIMAL_ROW_HEIGHT
XML_BORDER_LINE_WIDTH_LEFT
XML_BORDER_LINE_WIDTH_TOP
XML_GLYPH_ORIENTATION_VERTICAL
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
#define CTF_LEFTBORDERWIDTH
#define CTF_PARABOTTOMMARGIN_REL
#define CTF_PARALEFTMARGIN
#define CTF_PARATOPMARGIN_REL
#define CTF_ALLBORDERWIDTH
#define CTF_PARATOPMARGIN
#define CTF_PARARIGHTMARGIN
#define CTF_RIGHTBORDERWIDTH
#define CTF_PARABOTTOMMARGIN
#define CTF_PARARIGHTMARGIN_REL
#define CTF_TOPBORDERWIDTH
#define CTF_PARA_ADJUSTLAST
#define CTF_PARALEFTMARGIN_REL
#define CTF_BOTTOMBORDERWIDTH
constexpr OUStringLiteral SC_UNONAME_TOPBORDER
constexpr OUStringLiteral SC_UNONAME_PRMARGIN
constexpr OUStringLiteral SC_UNO_STANDARDDEC
constexpr OUStringLiteral SC_UNONAME_HYPERLINK
constexpr OUStringLiteral SC_UNONAME_ORIENT
constexpr OUStringLiteral SC_UNONAME_CELLWID
constexpr OUStringLiteral SC_UNONAME_BOTTBORDER
constexpr OUStringLiteral SC_UNONAME_CELLVJUS_METHOD
constexpr OUStringLiteral SC_UNONAME_NUMFMT
constexpr OUStringLiteral SC_UNONAME_WRAP
constexpr OUStringLiteral SC_UNONAME_CELLHGT
constexpr OUStringLiteral SC_UNONAME_PINDENT
constexpr OUStringLiteral SC_UNONAME_PLMARGIN
constexpr OUStringLiteral SC_UNONAME_CELLTRAN
constexpr OUStringLiteral SC_UNONAME_OHEIGHT
constexpr OUStringLiteral SC_UNONAME_VALIXML
constexpr OUStringLiteral SC_UNONAME_RIGHTBORDER
constexpr OUStringLiteral SC_UNONAME_CELLPRO
constexpr OUStringLiteral SC_UNONAME_PTMARGIN
constexpr OUStringLiteral SC_UNONAME_PBMARGIN
constexpr OUStringLiteral SC_UNONAME_LEFTBORDER
constexpr OUStringLiteral SC_UNONAME_TABCOLOR
constexpr OUStringLiteral SC_UNONAME_MANPAGE
constexpr OUStringLiteral SC_UNONAME_SHRINK_TO_FIT
constexpr OUStringLiteral SC_UNONAME_ASIANVERT
constexpr OUStringLiteral SC_UNONAME_ROTANG
constexpr OUStringLiteral SC_UNONAME_DIAGONAL_BLTR
constexpr OUStringLiteral SC_UNONAME_DIAGONAL_TLBR
constexpr OUStringLiteral SC_UNONAME_USERDEF
constexpr OUStringLiteral SC_UNONAME_CELLVJUS
constexpr OUStringLiteral SC_UNONAME_CONDXML
constexpr OUStringLiteral SC_UNONAME_ROTREF
constexpr OUStringLiteral SC_UNONAME_CELLBACK
constexpr OUStringLiteral SC_UNONAME_CELLVIS
constexpr OUStringLiteral SC_UNONAME_SHADOW
constexpr OUStringLiteral SC_UNONAME_TABLAYOUT
constexpr OUStringLiteral SC_UNONAME_CELLSTYL
constexpr OUStringLiteral SC_UNONAME_CELLHJUS
constexpr OUStringLiteral SC_UNONAME_PAGESTL
constexpr OUStringLiteral SC_UNONAME_CELLHJUS_METHOD
constexpr sal_uInt16 XML_NAMESPACE_TABLE_EXT
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_TEXT
constexpr sal_uInt16 XML_NAMESPACE_TABLE
constexpr sal_uInt16 XML_NAMESPACE_CSS3TEXT
constexpr sal_uInt16 XML_NAMESPACE_LO_EXT
constexpr sal_uInt16 XML_NAMESPACE_STYLE
constexpr sal_uInt16 XML_NAMESPACE_FO
const XMLPropertyMapEntry aXMLScTableStylesProperties[]
const XMLPropertyMapEntry aXMLScRowStylesProperties[]
const XMLPropertyMapEntry aXMLScRowStylesImportProperties[]
const XMLPropertyMapEntry aXMLScTableStylesImportProperties[]
#define MAP_ODF13(name, prefix, token, type, context)
const XMLPropertyMapEntry aXMLScFromXLSRowStylesProperties[]
const XMLPropertyMapEntry aXMLScColumnStylesProperties[]
const XMLPropertyMapEntry aXMLScCellStylesProperties[]
#define MAP(name, prefix, token, type, context)
#define MAP_EXT(name, prefix, token, type, context)
#define MAP_EXT_I(name, prefix, token, type, context)
#define CTF_SC_ALLPADDING
#define XML_SC_TYPE_ROTATEANGLE
#define CTF_SC_DIAGONALTLBRWIDTHS
#define CTF_SC_LEFTBORDERWIDTH
#define XML_SC_TYPE_PRINTCONTENT
#define CTF_SC_TOPPADDING
#define CTF_SC_NUMBERFORMAT
#define CTF_SC_ROWOPTIMALHEIGHT
#define CTF_SC_TOPBORDERWIDTH
#define XML_SC_TYPE_HORIJUSTIFY_METHOD
#define CTF_SC_DIAGONALBLTRWIDTH
#define XML_SC_TYPE_ORIENTATION
#define CTF_SC_ALLBORDERWIDTH
#define XML_SC_ISTEXTWRAPPED
#define CTF_SC_DIAGONALTLBRWIDTH
#define CTF_SC_BOTTOMPADDING
#define CTF_SC_MASTERPAGENAME
#define CTF_SC_DIAGONALBLTRWIDTHS
#define XML_SC_TYPE_ROTATEREFERENCE
#define CTF_SC_RIGHTBORDER
#define CTF_SC_IMPORT_MAP
#define XML_SC_TYPE_BREAKBEFORE
#define CTF_SC_BOTTOMBORDERWIDTH
#define XML_SC_TYPE_CELLPROTECTION
#define XML_SC_TYPE_EQUAL
#define XML_SC_TYPE_HORIJUSTIFYSOURCE
#define CTF_SC_VALIDATION
#define CTF_SC_RIGHTBORDERWIDTH
#define CTF_SC_DIAGONALTLBR
#define XML_SC_TYPE_HORIJUSTIFY
#define CTF_SC_DIAGONALBLTR
#define CTF_SC_RIGHTPADDING
#define XML_SC_TYPE_VERTICAL
#define XML_SC_TYPE_VERTJUSTIFY_METHOD
#define XML_SC_TYPE_HORIJUSTIFYREPEAT
#define CTF_SC_BOTTOMBORDER
#define XML_SC_TYPE_VERTJUSTIFY
#define CTF_SC_ROWBREAKBEFORE
#define CTF_SC_LEFTPADDING
#define CTF_SC_LEFTBORDER
#define XML_TYPE_NUMBER16
#define MID_FLAG_MERGE_PROPERTY
#define XML_TYPE_COLORTRANSPARENT
#define XML_TYPE_PROP_TABLE_CELL
#define XML_TYPE_PROP_PARAGRAPH
#define XML_TYPE_MEASURE16
#define XML_TYPE_TEXT_SHADOW
#define XML_TYPE_BUILDIN_CMP_ONLY
#define MID_FLAG_SPECIAL_ITEM
#define MID_FLAG_MULTI_PROPERTY
#define MID_FLAG_ELEMENT_ITEM
#define XML_TYPE_TEXT_WRITING_MODE
#define XML_TYPE_ATTRIBUTE_CONTAINER
#define XML_TYPE_BOOL_FALSE
#define XML_TYPE_PROP_TABLE_COLUMN
#define XML_TYPE_PROP_TABLE
#define XML_TYPE_BORDER_WIDTH
#define XML_TYPE_COLORAUTO
#define MID_FLAG_MERGE_ATTRIBUTE
#define XML_TYPE_ISTRANSPARENT
#define XML_TYPE_PROP_TABLE_ROW