summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/core/xmlfilterbase.cxx2
-rw-r--r--oox/source/token/namespaces-strict.txt1
-rw-r--r--oox/source/token/namespaces.hxx.tail1
-rw-r--r--oox/source/token/namespaces.txt1
-rw-r--r--oox/source/token/tokens.txt1
-rw-r--r--sc/inc/SparklineGroup.hxx5
-rw-r--r--sc/qa/unit/SparklineImportExportTest.cxx3
-rw-r--r--sc/source/filter/excel/excdoc.cxx1
-rw-r--r--sc/source/filter/excel/export/SparklineExt.cxx6
-rw-r--r--sc/source/filter/oox/SparklineFragment.cxx3
-rw-r--r--test/source/xmltesttools.cxx2
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: */