sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx |binary sc/qa/unit/subsequent_export-test.cxx | 23 +++++++++++++++++ sc/source/filter/excel/xepivotxml.cxx | 2 - 3 files changed, 24 insertions(+), 1 deletion(-)
New commits: commit 9e81e845d8299f117e96c30e8b40fcf602e9ca2c Author: Tamás Zolnai <tamas.zol...@collabora.com> Date: Thu Sep 28 23:43:43 2017 +0200 tdf#112733: Pivot table is displayed wrong in Excel after saved in LO Calc Change-Id: I5dad2ff95ab5dd090296cf8c6e4a8274355c262b Reviewed-on: https://gerrit.libreoffice.org/42955 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com> diff --git a/sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx b/sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx new file mode 100755 index 000000000000..664637d4bd57 Binary files /dev/null and b/sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 4ceb568bc26a..aad799b90285 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -219,6 +219,7 @@ public: void testPivotTableRowColPageFieldFilter(); void testPivotTableEmptyItem(); void testPivotTablePageFieldFilter(); + void testPivotTableFirstHeaderRowXLSX(); CPPUNIT_TEST_SUITE(ScExportTest); CPPUNIT_TEST(test); @@ -332,6 +333,7 @@ public: CPPUNIT_TEST(testPivotTableRowColPageFieldFilter); CPPUNIT_TEST(testPivotTableEmptyItem); CPPUNIT_TEST(testPivotTablePageFieldFilter); + CPPUNIT_TEST(testPivotTableFirstHeaderRowXLSX); CPPUNIT_TEST_SUITE_END(); @@ -4855,6 +4857,27 @@ void ScExportTest::testPivotTablePageFieldFilter() xDocSh->DoClose(); } +void ScExportTest::testPivotTableFirstHeaderRowXLSX() +{ + // tdf#112733: We have different tables here, but have the same value as firstHeaderRow + // The documentation is not clear about thit firstHeaderRow actually measn, but MS Excel works on this way + ScDocShellRef xShell = loadDoc("pivot_table_first_header_row.", FORMAT_XLSX); + CPPUNIT_ASSERT(xShell.is()); + + std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xShell), FORMAT_XLSX); + xmlDocPtr pTable = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/pivotTables/pivotTable1.xml"); + CPPUNIT_ASSERT(pTable); + assertXPath(pTable, "/x:pivotTableDefinition/x:location", "firstHeaderRow", "1"); + + pTable = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/pivotTables/pivotTable2.xml"); + CPPUNIT_ASSERT(pTable); + assertXPath(pTable, "/x:pivotTableDefinition/x:location", "firstHeaderRow", "1"); + + pTable = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/pivotTables/pivotTable3.xml"); + CPPUNIT_ASSERT(pTable); + assertXPath(pTable, "/x:pivotTableDefinition/x:location", "firstHeaderRow", "1"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sc/source/filter/excel/xepivotxml.cxx b/sc/source/filter/excel/xepivotxml.cxx index 3b44b67022ef..4a1011f7c22c 100644 --- a/sc/source/filter/excel/xepivotxml.cxx +++ b/sc/source/filter/excel/xepivotxml.cxx @@ -677,7 +677,7 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP // NB: Excel's range does not include page field area (if any). ScRange aOutRange = rDPObj.GetOutputRangeByType(sheet::DataPilotOutputRangeType::TABLE); - sal_Int32 nFirstHeaderRow = aColFields.size(); + sal_Int32 nFirstHeaderRow = rDPObj.GetHeaderLayout() ? 2 : 1; sal_Int32 nFirstDataRow = 2; sal_Int32 nFirstDataCol = 1; ScRange aResRange = rDPObj.GetOutputRangeByType(sheet::DataPilotOutputRangeType::RESULT);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits