14#include <oox/token/tokens.hxx>
20#include <com/sun/star/beans/XPropertySet.hpp>
21#include <com/sun/star/beans/PropertyValue.hpp>
22#include <com/sun/star/frame/XModel.hpp>
40 void TableStyle(
const uno::Sequence<beans::PropertyValue>& rStyle);
52 void handleBoolean(std::u16string_view aValue, sal_Int32 nToken);
55 void tableStylePPr(
const uno::Sequence<beans::PropertyValue>& rPPr);
59 void tableStyleRPr(
const uno::Sequence<beans::PropertyValue>& rRPr);
65 void tableStylePInd(
const uno::Sequence<beans::PropertyValue>& rInd);
71 void tableStyleTrPr(
const uno::Sequence<beans::PropertyValue>& rTrPr);
73 void tableStyleTcPr(
const uno::Sequence<beans::PropertyValue>& rTcPr);
76 sal_Int32 nToken = XML_tcBorders);
81 sal_Int32 nType = XML_tblCellMar);
83 void tableStyleTcBorder(sal_Int32 nToken,
const uno::Sequence<beans::PropertyValue>& rTcBorder);
85 void tableStyleShd(
const uno::Sequence<beans::PropertyValue>& rShd);
95 for (
const auto& rAttribute : rAttributeList)
97 if (rAttribute.Name ==
"val")
98 pAttributeList->add(
FSNS(XML_w, XML_val), rAttribute.Value.get<OUString>());
102 = { {
"firstRow", XML_firstRow },
103 {
"lastRow", XML_lastRow },
104 {
"firstColumn", XML_firstColumn },
105 {
"lastColumn", XML_lastColumn },
106 {
"oddVBand", XML_oddVBand },
107 {
"evenVBand", XML_evenVBand },
108 {
"oddHBand", XML_oddHBand },
109 {
"evenHBand", XML_evenHBand },
110 {
"firstRowFirstColumn", XML_firstRowFirstColumn },
111 {
"firstRowLastColumn", XML_firstRowLastColumn },
112 {
"lastRowFirstColumn", XML_lastRowFirstColumn },
113 {
"lastRowLastColumn", XML_lastRowLastColumn },
117 pAttributeList->add(
FSNS(XML_w,
nToken), rAttribute.Value.get<OUString>());
121 m_pImpl->getSerializer()->singleElementNS(XML_w, XML_cnfStyle, pAttributeList);
127 uno::Reference<beans::XPropertySet> xPropertySet(
128 m_pImpl->getDoc().GetDocShell()->GetBaseModel(), uno::UNO_QUERY_THROW);
129 uno::Sequence<beans::PropertyValue> aInteropGrabBag;
130 xPropertySet->getPropertyValue(
"InteropGrabBag") >>= aInteropGrabBag;
131 uno::Sequence<beans::PropertyValue> aTableStyles;
132 auto pProp = std::find_if(
133 std::cbegin(aInteropGrabBag), std::cend(aInteropGrabBag),
134 [](
const beans::PropertyValue& rProp) {
return rProp.Name ==
"tableStyles"; });
135 if (pProp != std::cend(aInteropGrabBag))
136 pProp->Value >>= aTableStyles;
137 if (!aTableStyles.hasElements())
140 if (nCountStylesToWrite > aTableStyles.getLength())
141 nCountStylesToWrite = aTableStyles.getLength();
143 for (sal_Int32
i = 0;
i < nCountStylesToWrite; ++
i)
145 uno::Sequence<beans::PropertyValue> aTableStyle;
146 aTableStyles[
i].Value >>= aTableStyle;
147 m_pImpl->TableStyle(aTableStyle);
152 const uno::Sequence<beans::PropertyValue>& rTableCellMar, sal_Int32 nType)
155 = { {
"left", XML_left }, {
"right", XML_right }, {
"start", XML_start },
156 {
"end", XML_end }, {
"top", XML_top }, {
"bottom", XML_bottom },
159 if (!rTableCellMar.hasElements())
163 for (
const auto& rProp : rTableCellMar)
168 rProp.Value.get<uno::Sequence<beans::PropertyValue>>());
170 OString::number(
aMap[
"w"].get<sal_Int32>()),
178 sal_Int32 nToken,
const uno::Sequence<beans::PropertyValue>& rTcBorder)
182 {
"color", XML_color },
183 {
"space", XML_space },
184 {
"themeColor", XML_themeColor },
185 {
"themeTint", XML_themeTint },
188 if (!rTcBorder.hasElements())
193 for (
const auto& rProp : rTcBorder)
195 pAttributeList->add(
FSNS(XML_w, nAttrToken), rProp.Value.get<OUString>());
197 m_pSerializer->singleElementNS(XML_w,
nToken, pAttributeList);
201 const uno::Sequence<beans::PropertyValue>& rTcBorders, sal_Int32 nToken)
204 {
"right", XML_right },
205 {
"start", XML_start },
208 {
"bottom", XML_bottom },
209 {
"insideH", XML_insideH },
210 {
"insideV", XML_insideV },
211 {
"tl2br", XML_tl2br },
212 {
"tr2bl", XML_tr2bl },
215 if (!rTcBorders.hasElements())
218 m_pSerializer->startElementNS(XML_w,
nToken);
219 for (
const auto& rTcBorder : rTcBorders)
221 tableStyleTcBorder(nSubToken,
222 rTcBorder.Value.get<uno::Sequence<beans::PropertyValue>>());
223 m_pSerializer->endElementNS(XML_w,
nToken);
228 if (!rShd.hasElements())
233 for (
const auto& rProp : rShd)
235 if (rProp.Name ==
"val")
236 pAttributeList->add(
FSNS(XML_w, XML_val), rProp.Value.get<OUString>());
237 else if (rProp.Name ==
"color")
238 pAttributeList->add(
FSNS(XML_w, XML_color), rProp.Value.get<OUString>());
239 else if (rProp.Name ==
"fill")
240 pAttributeList->add(
FSNS(XML_w, XML_fill), rProp.Value.get<OUString>());
241 else if (rProp.Name ==
"themeFill")
242 pAttributeList->add(
FSNS(XML_w, XML_themeFill), rProp.Value.get<OUString>());
243 else if (rProp.Name ==
"themeFillShade")
244 pAttributeList->add(
FSNS(XML_w, XML_themeFillShade), rProp.Value.get<OUString>());
245 else if (rProp.Name ==
"themeFillTint")
246 pAttributeList->add(
FSNS(XML_w, XML_themeFillTint), rProp.Value.get<OUString>());
248 m_pSerializer->singleElementNS(XML_w, XML_shd, pAttributeList);
253 if (!rColor.hasElements())
258 for (
const auto& rProp : rColor)
260 if (rProp.Name ==
"val")
261 pAttributeList->add(
FSNS(XML_w, XML_val), rProp.Value.get<OUString>());
262 else if (rProp.Name ==
"themeColor")
263 pAttributeList->add(
FSNS(XML_w, XML_themeColor), rProp.Value.get<OUString>());
264 else if (rProp.Name ==
"themeTint")
265 pAttributeList->add(
FSNS(XML_w, XML_themeTint), rProp.Value.get<OUString>());
266 else if (rProp.Name ==
"themeShade")
267 pAttributeList->add(
FSNS(XML_w, XML_themeShade), rProp.Value.get<OUString>());
269 m_pSerializer->singleElementNS(XML_w, XML_color, pAttributeList);
274 if (!rLang.hasElements())
279 for (
const auto& rProp : rLang)
281 if (rProp.Name ==
"eastAsia")
282 pAttributeList->add(
FSNS(XML_w, XML_eastAsia), rProp.Value.get<OUString>());
283 else if (rProp.Name ==
"val")
284 pAttributeList->add(
FSNS(XML_w, XML_val), rProp.Value.get<OUString>());
285 else if (rProp.Name ==
"bidi")
286 pAttributeList->add(
FSNS(XML_w, XML_bidi), rProp.Value.get<OUString>());
288 m_pSerializer->singleElementNS(XML_w, XML_lang, pAttributeList);
292 const uno::Sequence<beans::PropertyValue>& rRFonts)
294 if (!rRFonts.hasElements())
299 for (
const auto& rRFont : rRFonts)
301 if (rRFont.Name ==
"eastAsiaTheme")
302 pAttributeList->add(
FSNS(XML_w, XML_eastAsiaTheme), rRFont.Value.get<OUString>());
303 else if (rRFont.Name ==
"asciiTheme")
304 pAttributeList->add(
FSNS(XML_w, XML_asciiTheme), rRFont.Value.get<OUString>());
305 else if (rRFont.Name ==
"cstheme")
306 pAttributeList->add(
FSNS(XML_w, XML_cstheme), rRFont.Value.get<OUString>());
307 else if (rRFont.Name ==
"hAnsiTheme")
308 pAttributeList->add(
FSNS(XML_w, XML_hAnsiTheme), rRFont.Value.get<OUString>());
310 m_pSerializer->singleElementNS(XML_w, XML_rFonts, pAttributeList);
314 const uno::Sequence<beans::PropertyValue>& rSpacing)
316 if (!rSpacing.hasElements())
321 for (
const auto& rProp : rSpacing)
323 if (rProp.Name ==
"after")
324 pAttributeList->add(
FSNS(XML_w, XML_after), rProp.Value.get<OUString>());
325 else if (rProp.Name ==
"before")
326 pAttributeList->add(
FSNS(XML_w, XML_before), rProp.Value.get<OUString>());
327 else if (rProp.Name ==
"line")
328 pAttributeList->add(
FSNS(XML_w, XML_line), rProp.Value.get<OUString>());
329 else if (rProp.Name ==
"lineRule")
330 pAttributeList->add(
FSNS(XML_w, XML_lineRule), rProp.Value.get<OUString>());
331 else if (rProp.Name ==
"beforeLines")
332 pAttributeList->add(
FSNS(XML_w, XML_beforeLines), rProp.Value.get<OUString>());
333 else if (rProp.Name ==
"ParaTopMarginBeforeAutoSpacing")
335 pAttributeList->add(
FSNS(XML_w, XML_beforeAutospacing),
"1");
336 else if (rProp.Name ==
"afterLines")
337 pAttributeList->add(
FSNS(XML_w, XML_afterLines), rProp.Value.get<OUString>());
338 else if (rProp.Name ==
"ParaBottomMarginAfterAutoSpacing")
340 pAttributeList->add(
FSNS(XML_w, XML_afterAutospacing),
"1");
342 m_pSerializer->singleElementNS(XML_w, XML_spacing, pAttributeList);
347 if (!rInd.hasElements())
352 for (
const auto& rProp : rInd)
354 if (rProp.Name ==
"rightChars")
355 pAttributeList->add(
FSNS(XML_w, XML_rightChars), rProp.Value.get<OUString>());
356 else if (rProp.Name ==
"right")
357 pAttributeList->add(
FSNS(XML_w, XML_right), rProp.Value.get<OUString>());
359 m_pSerializer->singleElementNS(XML_w, XML_ind, pAttributeList);
363 const uno::Sequence<beans::PropertyValue>& rTableInd)
365 if (!rTableInd.hasElements())
370 for (
const auto& rProp : rTableInd)
372 if (rProp.Name ==
"w")
373 pAttributeList->add(
FSNS(XML_w, XML_w), OString::number(rProp.Value.get<sal_Int32>()));
374 else if (rProp.Name ==
"type")
375 pAttributeList->add(
FSNS(XML_w,
XML_type), rProp.Value.get<OUString>());
377 m_pSerializer->singleElementNS(XML_w, XML_tblInd, pAttributeList);
387 pAttributeList->add(
FSNS(XML_w, XML_val), aValue);
388 m_pSerializer->singleElementNS(XML_w,
nToken, pAttributeList);
393 if (!rRPr.hasElements())
396 m_pSerializer->startElementNS(XML_w, XML_rPr);
398 uno::Sequence<beans::PropertyValue> aRFonts;
399 uno::Sequence<beans::PropertyValue> aLang;
400 uno::Sequence<beans::PropertyValue> aColor;
401 uno::Sequence<beans::PropertyValue> aSpacingSequence;
402 bool bSequenceFlag =
false;
411 for (
const auto& rProp : rRPr)
413 if (rProp.Name ==
"rFonts")
414 aRFonts = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
415 else if (rProp.Name ==
"lang")
416 aLang = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
417 else if (rProp.Name ==
"b")
418 aB = rProp.Value.get<OUString>();
419 else if (rProp.Name ==
"bCs")
420 aBCs = rProp.Value.get<OUString>();
421 else if (rProp.Name ==
"i")
422 aI = rProp.Value.get<OUString>();
423 else if (rProp.Name ==
"color")
424 aColor = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
425 else if (rProp.Name ==
"sz")
426 aSz = rProp.Value.get<OUString>();
427 else if (rProp.Name ==
"szCs")
428 aSzCs = rProp.Value.get<OUString>();
429 else if (rProp.Name ==
"caps")
430 aCaps = rProp.Value.get<OUString>();
431 else if (rProp.Name ==
"smallCaps")
432 aSmallCaps = rProp.Value.get<OUString>();
433 else if (rProp.Name ==
"spacing")
435 if (rProp.Value.has<OUString>())
437 aSpacing = rProp.Value.get<OUString>();
441 aSpacingSequence = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
442 bSequenceFlag =
true;
446 tableStyleRRFonts(aRFonts);
447 tableStyleRLang(aLang);
448 handleBoolean(aB, XML_b);
449 handleBoolean(aBCs, XML_bCs);
450 handleBoolean(aI, XML_i);
451 handleBoolean(aCaps, XML_caps);
452 handleBoolean(aSmallCaps, XML_smallCaps);
453 tableStyleRColor(aColor);
456 m_pSerializer->singleElementNS(XML_w, XML_spacing,
FSNS(XML_w, XML_val),
457 aSpacingSequence[0].
Value.get<OUString>());
459 if (!aSpacing.isEmpty())
460 m_pSerializer->singleElementNS(XML_w, XML_spacing,
FSNS(XML_w, XML_val), aSpacing);
462 m_pSerializer->singleElementNS(XML_w, XML_sz,
FSNS(XML_w, XML_val), aSz);
463 if (!aSzCs.isEmpty())
464 m_pSerializer->singleElementNS(XML_w, XML_szCs,
FSNS(XML_w, XML_val), aSzCs);
466 m_pSerializer->endElementNS(XML_w, XML_rPr);
471 if (!rPPr.hasElements())
474 m_pSerializer->startElementNS(XML_w, XML_pPr);
476 uno::Sequence<beans::PropertyValue> aSpacing;
477 uno::Sequence<beans::PropertyValue> aInd;
478 bool bWordWrap =
false;
480 OUString aSnapToGrid;
481 for (
const auto& rProp : rPPr)
483 if (rProp.Name ==
"spacing")
484 aSpacing = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
485 else if (rProp.Name ==
"ind")
486 aInd = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
487 else if (rProp.Name ==
"wordWrap")
489 else if (rProp.Name ==
"jc")
490 aJc = rProp.Value.get<OUString>();
491 else if (rProp.Name ==
"snapToGrid")
492 aSnapToGrid = rProp.Value.get<OUString>();
495 m_pSerializer->singleElementNS(XML_w, XML_wordWrap);
496 tableStylePInd(aInd);
497 handleBoolean(aSnapToGrid, XML_snapToGrid);
498 tableStylePSpacing(aSpacing);
500 m_pSerializer->singleElementNS(XML_w, XML_jc,
FSNS(XML_w, XML_val), aJc);
502 m_pSerializer->endElementNS(XML_w, XML_pPr);
506 const uno::Sequence<beans::PropertyValue>& rTablePr)
508 if (!rTablePr.hasElements())
511 m_pSerializer->startElementNS(XML_w, XML_tblPr);
513 uno::Sequence<beans::PropertyValue> aTableInd;
514 uno::Sequence<beans::PropertyValue> aTableBorders;
515 uno::Sequence<beans::PropertyValue> aTableCellMar;
516 std::optional<sal_Int32> oTableStyleRowBandSize;
517 std::optional<sal_Int32> oTableStyleColBandSize;
518 for (
const auto& rProp : rTablePr)
520 if (rProp.Name ==
"tblStyleRowBandSize")
521 oTableStyleRowBandSize = rProp.Value.get<sal_Int32>();
522 else if (rProp.Name ==
"tblStyleColBandSize")
523 oTableStyleColBandSize = rProp.Value.get<sal_Int32>();
524 else if (rProp.Name ==
"tblInd")
525 aTableInd = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
526 else if (rProp.Name ==
"tblBorders")
527 aTableBorders = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
528 else if (rProp.Name ==
"tblCellMar")
529 aTableCellMar = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
531 if (oTableStyleRowBandSize)
532 m_pSerializer->singleElementNS(XML_w, XML_tblStyleRowBandSize,
FSNS(XML_w, XML_val),
533 OString::number(*oTableStyleRowBandSize));
534 if (oTableStyleColBandSize)
535 m_pSerializer->singleElementNS(XML_w, XML_tblStyleColBandSize,
FSNS(XML_w, XML_val),
536 OString::number(*oTableStyleColBandSize));
537 tableStyleTableInd(aTableInd);
538 tableStyleTcBorders(aTableBorders, XML_tblBorders);
539 tableStyleTableCellMar(aTableCellMar);
541 m_pSerializer->endElementNS(XML_w, XML_tblPr);
546 if (!rTrPr.hasElements())
549 m_pSerializer->startElementNS(XML_w, XML_trPr);
551 for (
const auto& rProp : rTrPr)
553 if (rProp.Name ==
"tblHeader")
554 m_pSerializer->singleElementNS(XML_w, XML_tblHeader);
557 m_pSerializer->endElementNS(XML_w, XML_trPr);
562 if (!rTcPr.hasElements())
565 m_pSerializer->startElementNS(XML_w, XML_tcPr);
567 uno::Sequence<beans::PropertyValue> aShd;
568 uno::Sequence<beans::PropertyValue> aTcBorders;
569 uno::Sequence<beans::PropertyValue> aTcMar;
571 for (
const auto& rProp : rTcPr)
573 if (rProp.Name ==
"shd")
574 aShd = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
575 else if (rProp.Name ==
"tcBorders")
576 aTcBorders = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
577 else if (rProp.Name ==
"tcMar")
578 aTcMar = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
579 else if (rProp.Name ==
"vAlign")
580 aVAlign = rProp.Value.get<OUString>();
582 tableStyleTcBorders(aTcBorders);
583 tableStyleTableCellMar(aTcMar, XML_tcMar);
585 if (!aVAlign.isEmpty())
586 m_pSerializer->singleElementNS(XML_w, XML_vAlign,
FSNS(XML_w, XML_val), aVAlign);
588 m_pSerializer->endElementNS(XML_w, XML_tcPr);
592 const uno::Sequence<beans::PropertyValue>& rTableStylePr)
594 if (!rTableStylePr.hasElements())
598 uno::Sequence<beans::PropertyValue> aPPr;
599 uno::Sequence<beans::PropertyValue> aRPr;
600 uno::Sequence<beans::PropertyValue> aTablePr;
601 uno::Sequence<beans::PropertyValue> aTrPr;
602 uno::Sequence<beans::PropertyValue> aTcPr;
603 for (
const auto& rProp : rTableStylePr)
605 if (rProp.Name ==
"type")
606 aType = rProp.Value.get<OUString>();
607 else if (rProp.Name ==
"pPr")
608 aPPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
609 else if (rProp.Name ==
"rPr")
610 aRPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
611 else if (rProp.Name ==
"tblPr")
612 aTablePr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
613 else if (rProp.Name ==
"trPr")
614 aTrPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
615 else if (rProp.Name ==
"tcPr")
616 aTcPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
619 m_pSerializer->startElementNS(XML_w, XML_tblStylePr,
FSNS(XML_w,
XML_type), aType);
623 if (aTablePr.hasElements())
624 tableStyleTablePr(aTablePr);
628 m_pSerializer->singleElementNS(XML_w, XML_tblPr);
630 tableStyleTrPr(aTrPr);
631 tableStyleTcPr(aTcPr);
633 m_pSerializer->endElementNS(XML_w, XML_tblStylePr);
638 bool bDefault =
false;
639 bool bCustomStyle =
false;
640 bool bQFormat =
false;
641 bool bSemiHidden =
false;
642 bool bUnhideWhenUsed =
false;
647 OUString aUiPriority;
648 uno::Sequence<beans::PropertyValue> aPPr;
649 uno::Sequence<beans::PropertyValue> aRPr;
650 uno::Sequence<beans::PropertyValue> aTablePr;
651 uno::Sequence<beans::PropertyValue> aTcPr;
652 std::vector<uno::Sequence<beans::PropertyValue>> aTableStylePrs;
653 for (
const auto& rProp : rStyle)
655 if (rProp.Name ==
"default")
656 bDefault = rProp.Value.get<
bool>();
657 else if (rProp.Name ==
"customStyle")
658 bCustomStyle = rProp.Value.get<
bool>();
659 else if (rProp.Name ==
"styleId")
660 aStyleId = rProp.Value.get<OUString>();
661 else if (rProp.Name ==
"name")
662 aName = rProp.Value.get<OUString>();
663 else if (rProp.Name ==
"basedOn")
664 aBasedOn = rProp.Value.get<OUString>();
665 else if (rProp.Name ==
"uiPriority")
666 aUiPriority = rProp.Value.get<OUString>();
667 else if (rProp.Name ==
"qFormat")
669 else if (rProp.Name ==
"semiHidden")
671 else if (rProp.Name ==
"unhideWhenUsed")
672 bUnhideWhenUsed =
true;
673 else if (rProp.Name ==
"rsid")
674 aRsid = rProp.Value.get<OUString>();
675 else if (rProp.Name ==
"pPr")
676 aPPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
677 else if (rProp.Name ==
"rPr")
678 aRPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
679 else if (rProp.Name ==
"tblPr")
680 aTablePr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
681 else if (rProp.Name ==
"tcPr")
682 aTcPr = rProp.Value.get<uno::Sequence<beans::PropertyValue>>();
683 else if (rProp.Name ==
"tblStylePr")
684 aTableStylePrs.push_back(rProp.Value.get<uno::Sequence<beans::PropertyValue>>());
691 pAttributeList->add(
FSNS(XML_w, XML_default),
"1");
693 pAttributeList->add(
FSNS(XML_w, XML_customStyle),
"1");
694 if (!aStyleId.isEmpty())
695 pAttributeList->add(
FSNS(XML_w, XML_styleId), aStyleId);
696 m_pSerializer->startElementNS(XML_w, XML_style, pAttributeList);
698 m_pSerializer->singleElementNS(XML_w, XML_name,
FSNS(XML_w, XML_val),
aName);
699 if (!aBasedOn.isEmpty())
700 m_pSerializer->singleElementNS(XML_w, XML_basedOn,
FSNS(XML_w, XML_val), aBasedOn);
701 if (!aUiPriority.isEmpty())
702 m_pSerializer->singleElementNS(XML_w, XML_uiPriority,
FSNS(XML_w, XML_val), aUiPriority);
704 m_pSerializer->singleElementNS(XML_w, XML_semiHidden);
706 m_pSerializer->singleElementNS(XML_w, XML_unhideWhenUsed);
708 m_pSerializer->singleElementNS(XML_w, XML_qFormat);
709 if (!aRsid.isEmpty())
710 m_pSerializer->singleElementNS(XML_w, XML_rsid,
FSNS(XML_w, XML_val), aRsid);
714 tableStyleTablePr(aTablePr);
715 tableStyleTcPr(aTcPr);
716 for (
const uno::Sequence<beans::PropertyValue>&
i : std::as_const(aTableStylePrs))
717 tableStyleTableStylePr(
i);
719 m_pSerializer->endElementNS(XML_w, XML_style);
724 m_pImpl->setSerializer(pSerializer);
731 m_pImpl->setSerializer(pSerializer);
void CnfStyle(const css::uno::Sequence< css::beans::PropertyValue > &rAttributeList)
Writes <w:cnfStyle .../> based on grab-bagged para, cell or row properties.
DocxTableStyleExport(SwDoc &rDoc, const sax_fastparser::FSHelperPtr &pSerializer)
void TableStyles(sal_Int32 nCountStylesToWrite)
std::unique_ptr< Impl > m_pImpl
void SetSerializer(const sax_fastparser::FSHelperPtr &pSerializer)
static rtl::Reference< FastAttributeList > createAttrList()
sal_Int32 DocxStringGetToken(DocxStringTokenMap const *pMap, std::u16string_view rName)
constexpr sal_Int32 FSNS(sal_Int32 namespc, sal_Int32 element)
std::shared_ptr< FastSerializerHelper > FSHelperPtr
HashMap_OWString_Interface aMap
Methods in this class handle values in a table style.
void tableStyleRLang(const uno::Sequence< beans::PropertyValue > &rLang)
Export of w:lang.
void tableStylePPr(const uno::Sequence< beans::PropertyValue > &rPPr)
Export of w:pPr.
void tableStyleTableInd(const uno::Sequence< beans::PropertyValue > &rTableInd)
Export of w:tblInd.
void tableStyleShd(const uno::Sequence< beans::PropertyValue > &rShd)
Export of w:shd.
sax_fastparser::FSHelperPtr m_pSerializer
void tableStyleRPr(const uno::Sequence< beans::PropertyValue > &rRPr)
Export of w:rPr.
void tableStyleTcPr(const uno::Sequence< beans::PropertyValue > &rTcPr)
Export of w:tcPr.
void tableStyleTcBorders(const uno::Sequence< beans::PropertyValue > &rTcBorders, sal_Int32 nToken=XML_tcBorders)
Export of w:tcBorders (and w:tblBorders).
void tableStyleTablePr(const uno::Sequence< beans::PropertyValue > &rTablePr)
Export of w:tblPr.
void tableStyleRColor(const uno::Sequence< beans::PropertyValue > &rColor)
Export of w:color.
void tableStyleTrPr(const uno::Sequence< beans::PropertyValue > &rTrPr)
Export of w:trPr.
void TableStyle(const uno::Sequence< beans::PropertyValue > &rStyle)
void setSerializer(sax_fastparser::FSHelperPtr pSerializer)
void handleBoolean(std::u16string_view aValue, sal_Int32 nToken)
Handles a boolean value.
void tableStyleTcBorder(sal_Int32 nToken, const uno::Sequence< beans::PropertyValue > &rTcBorder)
Export of a given table cell border type.
void tableStyleTableStylePr(const uno::Sequence< beans::PropertyValue > &rTableStylePr)
Export of w:tblStylePr.
const sax_fastparser::FSHelperPtr & getSerializer() const
void tableStyleTableCellMar(const uno::Sequence< beans::PropertyValue > &rTableCellMar, sal_Int32 nType=XML_tblCellMar)
Export of w:tblCellMar (and w:tcMar).
void tableStylePSpacing(const uno::Sequence< beans::PropertyValue > &rSpacing)
Export of w:spacing.
void tableStylePInd(const uno::Sequence< beans::PropertyValue > &rInd)
Export of w:ind in a pPr.
void tableStyleRRFonts(const uno::Sequence< beans::PropertyValue > &rRFonts)
Export of w:rFonts.