summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/qa/extras/chart2export.cxx12
-rw-r--r--chart2/qa/extras/data/pptx/tdf115859.pptxbin0 -> 49120 bytes
-rw-r--r--oox/source/export/chartexport.cxx18
3 files changed, 30 insertions, 0 deletions
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index d7f4a67b7651..bb90d5201167 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -101,6 +101,7 @@ public:
void testMultipleAxisXLSX();
void testAxisTitleRotationXLSX();
void testAxisCrossBetweenXSLX();
+ void testNumberFormatExportPPTX();
CPPUNIT_TEST_SUITE(Chart2ExportTest);
CPPUNIT_TEST(testErrorBarXLSX);
@@ -166,6 +167,7 @@ public:
CPPUNIT_TEST(testMultipleAxisXLSX);
CPPUNIT_TEST(testAxisTitleRotationXLSX);
CPPUNIT_TEST(testAxisCrossBetweenXSLX);
+ CPPUNIT_TEST(testNumberFormatExportPPTX);
CPPUNIT_TEST_SUITE_END();
protected:
@@ -1562,6 +1564,16 @@ void Chart2ExportTest::testAxisCrossBetweenXSLX()
assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat");
}
+void Chart2ExportTest::testNumberFormatExportPPTX()
+{
+ load("/chart2/qa/extras/data/pptx/", "tdf115859.pptx");
+ xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart1", "Impress MS PowerPoint 2007 XML");
+ CPPUNIT_ASSERT(pXmlDoc);
+
+ assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", "formatCode", "#,##0.00,\\K");
+ assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", "0");
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/pptx/tdf115859.pptx b/chart2/qa/extras/data/pptx/tdf115859.pptx
new file mode 100644
index 000000000000..07943041bed8
--- /dev/null
+++ b/chart2/qa/extras/data/pptx/tdf115859.pptx
Binary files differ
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 2592c74fd2e6..b9a703cafd4b 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -3079,6 +3079,24 @@ void ChartExport::exportDataLabels(
FSHelperPtr pFS = GetFS();
pFS->startElement(FSNS(XML_c, XML_dLbls), FSEND);
+ bool bLinkedNumFmt = true;
+ if (GetProperty(xPropSet, "LinkNumberFormatToSource"))
+ mAny >>= bLinkedNumFmt;
+
+ if (GetProperty(xPropSet, "NumberFormat"))
+ {
+ 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);
+ }
+
uno::Sequence<sal_Int32> aAttrLabelIndices;
xPropSet->getPropertyValue("AttributedDataPoints") >>= aAttrLabelIndices;