[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - sc/inc sc/qa sc/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jun 19 09:46:35 UTC 2019
sc/inc/dputil.hxx | 4 ++--
sc/qa/unit/pivottable_filters_test.cxx | 3 ++-
sc/source/filter/excel/xepivotxml.cxx | 11 +++++++----
3 files changed, 11 insertions(+), 7 deletions(-)
New commits:
commit 5c07424ea9ca514a4c42a615adf7faa7b8372a05
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Mon Apr 22 12:16:38 2019 +0300
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Jun 19 11:46:01 2019 +0200
tdf#124881: Provide a non-empty name for pivot table's data field
Otherwise, the empty string is used by Excel, so the field arrives
unnamed, disappearing from pivot table's cells upon refresh, etc.
Change-Id: I2e0f9fad2d766829f2b06425bec24ff182e3a869
Reviewed-on: https://gerrit.libreoffice.org/71065
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/74344
Tested-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/sc/inc/dputil.hxx b/sc/inc/dputil.hxx
index 735843b84578..742c69da0e6a 100644
--- a/sc/inc/dputil.hxx
+++ b/sc/inc/dputil.hxx
@@ -47,9 +47,9 @@ public:
double fValue, const ScDPNumGroupInfo* pInfo, sal_Int32 nDatePart,
const SvNumberFormatter* pFormatter);
- static OUString getDisplayedMeasureName(const OUString& rName, ScSubTotalFunc eFunc);
+ SC_DLLPUBLIC static OUString getDisplayedMeasureName(const OUString& rName, ScSubTotalFunc eFunc);
- static ScSubTotalFunc toSubTotalFunc(ScGeneralFunction eGenFunc);
+ SC_DLLPUBLIC static ScSubTotalFunc toSubTotalFunc(ScGeneralFunction eGenFunc);
};
#endif
diff --git a/sc/qa/unit/pivottable_filters_test.cxx b/sc/qa/unit/pivottable_filters_test.cxx
index b0868a5db88f..17d5b32c3a2a 100644
--- a/sc/qa/unit/pivottable_filters_test.cxx
+++ b/sc/qa/unit/pivottable_filters_test.cxx
@@ -2474,7 +2474,8 @@ void ScPivotTableFiltersTest::testTdf124651()
CPPUNIT_ASSERT(pDoc);
// We have to export name attribute, even though it's optional according to ECMA-376 standard,
// because Excel (at least 2016) seems to require it.
- assertXPath(pDoc, "/x:pivotTableDefinition/x:dataFields/x:dataField", "name", "");
+ // tdf#124881: this shouldn't be an empty string
+ assertXPath(pDoc, "/x:pivotTableDefinition/x:dataFields/x:dataField", "name", "Sum - num");
}
void ScPivotTableFiltersTest::testTdf124736()
diff --git a/sc/source/filter/excel/xepivotxml.cxx b/sc/source/filter/excel/xepivotxml.cxx
index cfa173cca627..e3b39e0dafe9 100644
--- a/sc/source/filter/excel/xepivotxml.cxx
+++ b/sc/source/filter/excel/xepivotxml.cxx
@@ -1130,13 +1130,16 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
long nDimIdx = it->mnPos;
assert(aCachedDims[nDimIdx]); // the loop above should have screened for NULL's.
const ScDPSaveDimension& rDim = *it->mpDim;
- const boost::optional<OUString> & pName = rDim.GetLayoutName();
+ boost::optional<OUString> pName = rDim.GetLayoutName();
// tdf#124651: despite being optional in CT_DataField according to ECMA-376 Part 1,
// Excel (at least 2016) seems to insist on the presence of "name" attribute in
- // dataField element, even if empty
- const OString sName = pName ? pName->toUtf8() : "";
+ // dataField element.
+ // tdf#124881: try to create a meaningful name; don't use empty string.
+ if (!pName)
+ pName = ScDPUtil::getDisplayedMeasureName(
+ rDim.GetName(), ScDPUtil::toSubTotalFunc(rDim.GetFunction()));
auto pItemAttList = sax_fastparser::FastSerializerHelper::createAttrList();
- pItemAttList->add(XML_name, sName);
+ pItemAttList->add(XML_name, pName->toUtf8());
pItemAttList->add(XML_fld, OString::number(nDimIdx));
const char* pSubtotal = toOOXMLSubtotalType(rDim.GetFunction());
if (pSubtotal)
More information about the Libreoffice-commits
mailing list