sc/qa/unit/data/xlsx/pivottable_long_text.xlsx |binary sc/qa/unit/pivottable_filters_test.cxx | 14 ++++++++++++++ sc/source/filter/excel/xepivotxml.cxx | 11 +++++++++++ 3 files changed, 25 insertions(+)
New commits: commit 6952a3ba27d0d0fc08c5701b4ed7dd9982c9c60d Author: Mike Kaganski <[email protected]> AuthorDate: Tue Apr 30 16:45:54 2019 +0300 Commit: Mike Kaganski <[email protected]> CommitDate: Tue Apr 30 17:07:39 2019 +0200 tdf#125046: export longText attribute for sharedItems element Change-Id: Id727f10763bc5017eeb3e267b425d6013786d6a2 Reviewed-on: https://gerrit.libreoffice.org/71585 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sc/qa/unit/data/xlsx/pivottable_long_text.xlsx b/sc/qa/unit/data/xlsx/pivottable_long_text.xlsx new file mode 100644 index 000000000000..f56db722e915 Binary files /dev/null and b/sc/qa/unit/data/xlsx/pivottable_long_text.xlsx differ diff --git a/sc/qa/unit/pivottable_filters_test.cxx b/sc/qa/unit/pivottable_filters_test.cxx index 222772b48866..d9804d0713f1 100644 --- a/sc/qa/unit/pivottable_filters_test.cxx +++ b/sc/qa/unit/pivottable_filters_test.cxx @@ -91,6 +91,7 @@ public: void tesTtdf124772NumFmt(); void testTdf124810(); void testTdf124883(); + void testTdf125046(); CPPUNIT_TEST_SUITE(ScPivotTableFiltersTest); @@ -139,6 +140,7 @@ public: CPPUNIT_TEST(tesTtdf124772NumFmt); CPPUNIT_TEST(testTdf124810); CPPUNIT_TEST(testTdf124883); + CPPUNIT_TEST(testTdf125046); CPPUNIT_TEST_SUITE_END(); @@ -2632,6 +2634,18 @@ void ScPivotTableFiltersTest::testTdf124883() "Count of Value2"); } +void ScPivotTableFiltersTest::testTdf125046() +{ + ScDocShellRef xDocSh = loadDoc("pivottable_long_text.", FORMAT_XLSX); + CPPUNIT_ASSERT(xDocSh.is()); + + xmlDocPtr pDoc = XPathHelper::parseExport2( + *this, *xDocSh, m_xSFactory, "xl/pivotCache/pivotCacheDefinition1.xml", FORMAT_XLSX); + CPPUNIT_ASSERT(pDoc); + assertXPath(pDoc, "/x:pivotCacheDefinition/x:cacheFields/x:cacheField[2]/x:sharedItems", + "longText", "1"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScPivotTableFiltersTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sc/source/filter/excel/xepivotxml.cxx b/sc/source/filter/excel/xepivotxml.cxx index 75cb94dd2baa..8c263795fe94 100644 --- a/sc/source/filter/excel/xepivotxml.cxx +++ b/sc/source/filter/excel/xepivotxml.cxx @@ -350,6 +350,7 @@ void XclExpXmlPivotCaches::SavePivotCacheXml( XclExpXmlStream& rStrm, const Entr double fMin = std::numeric_limits<double>::infinity(), fMax = -std::numeric_limits<double>::infinity(); bool isValueInteger = true; bool isContainsDate = rCache.IsDateDimension(i); + bool isLongText = false; for (const auto& rFieldItem : rFieldItems) { ScDPItemData::Type eType = rFieldItem.GetType(); @@ -369,6 +370,10 @@ void XclExpXmlPivotCaches::SavePivotCacheXml( XclExpXmlStream& rStrm, const Entr isValueInteger = false; } } + else if (eType == ScDPItemData::String && !isLongText) + { + isLongText = rFieldItem.GetString().getLength() > 255; + } } auto pAttList = sax_fastparser::FastSerializerHelper::createAttrList(); @@ -444,6 +449,12 @@ void XclExpXmlPivotCaches::SavePivotCacheXml( XclExpXmlStream& rStrm, const Entr { pAttList->add(XML_count, OString::number(static_cast<long>(rFieldItems.size()))); } + + if (isLongText) + { + pAttList->add(XML_longText, ToPsz10(true)); + } + sax_fastparser::XFastAttributeListRef xAttributeList(pAttList); pDefStrm->startElement(XML_sharedItems, xAttributeList); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
