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 <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
This commit is contained in:
parent
e8879de7bc
commit
9e81e845d8
3 changed files with 24 additions and 1 deletions
BIN
sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx
Executable file
BIN
sc/qa/unit/data/xlsx/pivot_table_first_header_row.xlsx
Executable file
Binary file not shown.
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue