diff options
-rw-r--r-- | oox/source/core/xmlfilterbase.cxx | 2 | ||||
-rw-r--r-- | oox/source/token/namespaces-strict.txt | 1 | ||||
-rw-r--r-- | oox/source/token/namespaces.hxx.tail | 1 | ||||
-rw-r--r-- | oox/source/token/namespaces.txt | 1 | ||||
-rw-r--r-- | oox/source/token/tokens.txt | 1 | ||||
-rw-r--r-- | sc/inc/SparklineGroup.hxx | 5 | ||||
-rw-r--r-- | sc/qa/unit/SparklineImportExportTest.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/excel/excdoc.cxx | 1 | ||||
-rw-r--r-- | sc/source/filter/excel/export/SparklineExt.cxx | 6 | ||||
-rw-r--r-- | sc/source/filter/oox/SparklineFragment.cxx | 3 | ||||
-rw-r--r-- | test/source/xmltesttools.cxx | 2 |
11 files changed, 24 insertions, 2 deletions
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx index daea0ad49962..877e8d52eda3 100644 --- a/oox/source/core/xmlfilterbase.cxx +++ b/oox/source/core/xmlfilterbase.cxx @@ -146,6 +146,8 @@ const Sequence< beans::Pair< OUString, sal_Int32 > >& NamespaceIds() NMSP_x12ac}, {"http://schemas.microsoft.com/office/drawing/2012/chart", NMSP_c15}, + {"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2", + NMSP_xr2}, }; return SINGLETON; }; diff --git a/oox/source/token/namespaces-strict.txt b/oox/source/token/namespaces-strict.txt index 5024249bfacc..7449dca99a33 100644 --- a/oox/source/token/namespaces-strict.txt +++ b/oox/source/token/namespaces-strict.txt @@ -88,6 +88,7 @@ w15 http://schemas.microsoft.com/office/word/2012/wordml p15 http://schemas.microsoft.com/office/powerpoint/2012/main x12ac http://schemas.microsoft.com/office/spreadsheetml/2011/1/ac c15 http://schemas.microsoft.com/office/drawing/2012/chart +xr2 http://schemas.microsoft.com/office/spreadsheetml/2015/revision2 # extlst namespaces diff --git a/oox/source/token/namespaces.hxx.tail b/oox/source/token/namespaces.hxx.tail index fdea5b96f1b4..382955683d7d 100644 --- a/oox/source/token/namespaces.hxx.tail +++ b/oox/source/token/namespaces.hxx.tail @@ -62,6 +62,7 @@ inline sal_Int32 getNamespace( sal_Int32 nToken ) { return nToken & NMSP_MASK; } #define W_TOKEN( token ) OOX_TOKEN( doc, token ) #define LOEXT_TOKEN( token ) OOX_TOKEN( loext, token ) #define M_TOKEN(token) OOX_TOKEN(officeMath, token) +#define XR2_TOKEN(token) OOX_TOKEN(xr2, token) diff --git a/oox/source/token/namespaces.txt b/oox/source/token/namespaces.txt index f18e0833f31d..849caa547695 100644 --- a/oox/source/token/namespaces.txt +++ b/oox/source/token/namespaces.txt @@ -88,6 +88,7 @@ w15 http://schemas.microsoft.com/office/word/2012/wordml p15 http://schemas.microsoft.com/office/powerpoint/2012/main x12ac http://schemas.microsoft.com/office/spreadsheetml/2011/1/ac c15 http://schemas.microsoft.com/office/drawing/2012/chart +xr2 http://schemas.microsoft.com/office/spreadsheetml/2015/revision2 # extlst namespaces diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt index 593ef0b23a5d..d1a40140add9 100644 --- a/oox/source/token/tokens.txt +++ b/oox/source/token/tokens.txt @@ -5848,6 +5848,7 @@ xmlDataType xmlPr xmlns xpath +xr2 xrange xsc xscale diff --git a/sc/inc/SparklineGroup.hxx b/sc/inc/SparklineGroup.hxx index 9e2fd89ff9cf..051e45d9e95a 100644 --- a/sc/inc/SparklineGroup.hxx +++ b/sc/inc/SparklineGroup.hxx @@ -22,11 +22,14 @@ class SC_DLLPUBLIC SparklineGroup { private: SparklineAttributes m_aAttributes; + OUString m_sUID; public: SparklineAttributes& getAttributes() { return m_aAttributes; } - OUString m_sUID; + OUString getID() { return m_sUID; } + + void setID(OUString const& rID) { m_sUID = rID; } SparklineGroup(); SparklineGroup(SparklineGroup const& pOtherSparkline); diff --git a/sc/qa/unit/SparklineImportExportTest.cxx b/sc/qa/unit/SparklineImportExportTest.cxx index 8f36cf2f9adf..2c324121a337 100644 --- a/sc/qa/unit/SparklineImportExportTest.cxx +++ b/sc/qa/unit/SparklineImportExportTest.cxx @@ -59,6 +59,9 @@ void checkSparklines(ScDocument& rDocument) { auto pSparkline = rDocument.GetSparkline(ScAddress(0, 1, 0)); // A2 CPPUNIT_ASSERT(pSparkline); + CPPUNIT_ASSERT_EQUAL(OUString("{1C5C5DE0-3C09-4CB3-A3EC-9E763301EC82}"), + pSparkline->getSparklineGroup()->getID()); + auto& rAttributes = pSparkline->getSparklineGroup()->getAttributes(); CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Line, rAttributes.getType()); diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx index 529e76971cbc..c01dde32981c 100644 --- a/sc/source/filter/excel/excdoc.cxx +++ b/sc/source/filter/excel/excdoc.cxx @@ -696,6 +696,7 @@ void ExcTable::WriteXml( XclExpXmlStream& rStrm ) FSNS(XML_xmlns, XML_r), rStrm.getNamespaceURL(OOX_NS(officeRel)).toUtf8(), FSNS(XML_xmlns, XML_xdr), "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing", // rStrm.getNamespaceURL(OOX_NS(xm)).toUtf8() -> "http://schemas.microsoft.com/office/excel/2006/main", FSNS(XML_xmlns, XML_x14), rStrm.getNamespaceURL(OOX_NS(xls14Lst)).toUtf8(), + FSNS(XML_xmlns, XML_xr2), rStrm.getNamespaceURL(OOX_NS(xr2)).toUtf8(), FSNS(XML_xmlns, XML_mc), rStrm.getNamespaceURL(OOX_NS(mce)).toUtf8()); SetCurrScTab( mnScTab ); diff --git a/sc/source/filter/excel/export/SparklineExt.cxx b/sc/source/filter/excel/export/SparklineExt.cxx index 1a82dbec46da..549365dcb003 100644 --- a/sc/source/filter/excel/export/SparklineExt.cxx +++ b/sc/source/filter/excel/export/SparklineExt.cxx @@ -187,6 +187,12 @@ void SparklineExt::addSparklineGroup(XclExpXmlStream& rStream, sc::SparklineGrou // Sparkline Group Attributes auto pAttrList = sax_fastparser::FastSerializerHelper::createAttrList(); + + // Write ID + OString sUID = OUStringToOString(rSparklineGroup.getID(), RTL_TEXTENCODING_UTF8); + pAttrList->addNS(XML_xr2, XML_uid, sUID); + + // Write attributes addSparklineGroupAttributes(pAttrList, rSparklineGroup.getAttributes()); rWorksheet->startElementNS(XML_x14, XML_sparklineGroup, pAttrList); diff --git a/sc/source/filter/oox/SparklineFragment.cxx b/sc/source/filter/oox/SparklineFragment.cxx index 451b7b2a70e1..94fefc37949f 100644 --- a/sc/source/filter/oox/SparklineFragment.cxx +++ b/sc/source/filter/oox/SparklineFragment.cxx @@ -173,7 +173,8 @@ ContextHandlerRef SparklineGroupsContext::onCreateContext(sal_Int32 nElement, auto& rLastGroup = m_aSparklineGroups.emplace_back(); auto& rSparklineAttributes = rLastGroup.getSparklineGroup()->getAttributes(); addAttributesToSparklineAttributes(rSparklineAttributes, rAttribs); - rLastGroup.getSparklineGroup()->m_sUID = rAttribs.getString(XML_uid, OUString()); + OUString sUID = rAttribs.getString(XR2_TOKEN(uid), OUString()); + rLastGroup.getSparklineGroup()->setID(sUID); return this; } case XLS14_TOKEN(colorSeries): diff --git a/test/source/xmltesttools.cxx b/test/source/xmltesttools.cxx index f92c380d9bf8..ab9e5dcff8b8 100644 --- a/test/source/xmltesttools.cxx +++ b/test/source/xmltesttools.cxx @@ -440,6 +440,8 @@ void XmlTestTools::registerOOXMLNamespaces(xmlXPathContextPtr& pXmlXpathCtx) BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/diagram")); xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("c15"), BAD_CAST("http://schemas.microsoft.com/office/drawing/2012/chart")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("xr2"), + BAD_CAST("http://schemas.microsoft.com/office/spreadsheetml/2015/revision2")); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |