diff options
author | Gülşah Köse <gulsah.kose@collabora.com> | 2019-01-17 09:57:41 +0300 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2019-09-16 21:21:53 +0200 |
commit | e5c10223db1e6f1b29aa2615400e9215e3d5fd03 (patch) | |
tree | fa5afac90dd0538798c3665c60283b66242f986b /oox | |
parent | ad27462a68837253863a02c19713cc0fe76a5178 (diff) |
tdf#122031 Export number format of chart label to OOXML
The patch fixes missing numFmt. numFmt element has been added as child
under the dLbl element.
Change-Id: Ic81ac58c2ea087cd7599351034eb4298ee613843
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/66493
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins
Reviewed-on: https://gerrit.libreoffice.org/78991
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/export/chartexport.cxx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index cf6dcab3139c..5a1c4589f0b9 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3166,7 +3166,7 @@ void ChartExport::exportDataLabels( if (GetProperty(xPropSet, "LinkNumberFormatToSource")) mAny >>= bLinkedNumFmt; - if (GetProperty(xPropSet, "NumberFormat")) + if (GetProperty(xPropSet, "NumberFormat") || GetProperty(xPropSet, "PercentageNumberFormat")) { sal_Int32 nKey = 0; mAny >>= nKey; @@ -3232,15 +3232,31 @@ void ChartExport::exportDataLabels( const sal_Int32* p = aAttrLabelIndices.getConstArray(); const sal_Int32* pEnd = p + aAttrLabelIndices.getLength(); + + for (; p != pEnd; ++p) { sal_Int32 nIdx = *p; uno::Reference<beans::XPropertySet> xLabelPropSet = xSeries->getDataPointByIndex(nIdx); + if (!xLabelPropSet.is()) continue; - // Individual label property that overwrites the baseline. pFS->startElement(FSNS(XML_c, XML_dLbl), FSEND); + + if (GetProperty(xLabelPropSet, "NumberFormat") || GetProperty(xLabelPropSet, "PercentageNumberFormat")) + { + sal_Int32 nKey = 0; + mAny >>= nKey; + + OUString aNumberFormatString = getNumberFormatCode(nKey); + OString sNumberFormatString = OUStringToOString(aNumberFormatString, RTL_TEXTENCODING_UTF8); + + pFS->singleElement(FSNS(XML_c, XML_numFmt), XML_formatCode, sNumberFormatString.getStr(), + XML_sourceLinked, bLinkedNumFmt ? "1" : "0", FSEND); + } + + // Individual label property that overwrites the baseline. pFS->singleElement(FSNS(XML_c, XML_idx), XML_val, I32S(nIdx), FSEND); exportTextProps( xPropSet ); writeLabelProperties(pFS, this, xLabelPropSet, aParam); |