sc/qa/unit/data/ods/tdf121718_UseFirstPageNumber.ods |binary sc/qa/unit/subsequent_export-test.cxx | 27 +++++++++++++++++++ sc/source/filter/excel/xepage.cxx | 8 ++++- 3 files changed, 33 insertions(+), 2 deletions(-)
New commits: commit 790c0aeab258f770eb94f2d2cceceebfeaceb825 Author: Attila Szűcs <szucs.atti...@nisz.hu> AuthorDate: Thu Aug 6 10:35:06 2020 +0200 Commit: László Németh <nem...@numbertext.org> CommitDate: Fri Aug 7 14:35:10 2020 +0200 tdf#121718 XLSX export: fix first page number Changed code to not save 'useFirstPageNumber' and 'firstPageNumber' if "First page number" is not checked. It was needed because Excel does not care about 'useFirstPageNumber', and blindly load 'firstPageNumber' even if that had an invalid value (that could happen when useFirstPageNumber==false). Co-authored-by: Tibor Nagy (NISZ) Change-Id: I69c9ed0fd4fdca1794d4bbc197713ac687eb4005 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100203 Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> diff --git a/sc/qa/unit/data/ods/tdf121718_UseFirstPageNumber.ods b/sc/qa/unit/data/ods/tdf121718_UseFirstPageNumber.ods new file mode 100644 index 000000000000..0726e4cb1edc Binary files /dev/null and b/sc/qa/unit/data/ods/tdf121718_UseFirstPageNumber.ods differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 4a9e85efecf0..c249322cbcf4 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -255,6 +255,7 @@ public: void testTdf121716_ExportEvenHeaderFooterXLSX(); void testTdf134459_HeaderFooterColorXLSX(); void testTdf134817_HeaderFooterTextWith2SectionXLSX(); + void testTdf121718_UseFirstPageNumberXLSX(); void testHeaderFontStyleXLSX(); CPPUNIT_TEST_SUITE(ScExportTest); @@ -409,6 +410,7 @@ public: CPPUNIT_TEST(testTdf121716_ExportEvenHeaderFooterXLSX); CPPUNIT_TEST(testTdf134459_HeaderFooterColorXLSX); CPPUNIT_TEST(testTdf134817_HeaderFooterTextWith2SectionXLSX); + CPPUNIT_TEST(testTdf121718_UseFirstPageNumberXLSX); CPPUNIT_TEST(testHeaderFontStyleXLSX); CPPUNIT_TEST_SUITE_END(); @@ -5220,6 +5222,31 @@ void ScExportTest::testTdf134817_HeaderFooterTextWith2SectionXLSX() xDocSh->DoClose(); } +void ScExportTest::testTdf121718_UseFirstPageNumberXLSX() +{ + // If "First page number" is not checked then useFirstPageNumb, and firstPageNumber should not be exported. + ScDocShellRef xShell = loadDoc("tdf121718_UseFirstPageNumber.", FORMAT_ODS); + CPPUNIT_ASSERT(xShell.is()); + + ScDocShellRef xDocSh = saveAndReload(&(*xShell), FORMAT_XLSX); + CPPUNIT_ASSERT(xDocSh.is()); + + std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xDocSh), FORMAT_XLSX); + xmlDocUniquePtr pDoc = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/worksheets/sheet1.xml"); + CPPUNIT_ASSERT(pDoc); + + assertXPath(pDoc, "/x:worksheet/x:pageSetup", "useFirstPageNumber", "true"); + assertXPath(pDoc, "/x:worksheet/x:pageSetup", "firstPageNumber", "10"); + + pDoc = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/worksheets/sheet2.xml"); + CPPUNIT_ASSERT(pDoc); + + assertXPathNoAttribute(pDoc, "/x:worksheet/x:pageSetup", "useFirstPageNumber"); + assertXPathNoAttribute(pDoc, "/x:worksheet/x:pageSetup", "firstPageNumber"); + + xDocSh->DoClose(); +} + void ScExportTest::testHeaderFontStyleXLSX() { ScDocShellRef xShell = loadDoc("tdf134826.", FORMAT_XLSX); diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx index 3941bd191f92..64d671a3acba 100644 --- a/sc/source/filter/excel/xepage.cxx +++ b/sc/source/filter/excel/xepage.cxx @@ -107,7 +107,6 @@ void XclExpSetup::SaveXml( XclExpXmlStream& rStrm ) // pAttrList->add( XML_paperUnits, "mm" ); } pAttrList->add( XML_scale, OString::number( mrData.mnScaling ).getStr() ); - pAttrList->add( XML_firstPageNumber, OString::number( mrData.mnStartPage ).getStr() ); pAttrList->add( XML_fitToWidth, OString::number( mrData.mnFitToWidth ).getStr() ); pAttrList->add( XML_fitToHeight, OString::number( mrData.mnFitToHeight ).getStr() ); pAttrList->add( XML_pageOrder, mrData.mbPrintInRows ? "overThenDown" : "downThenOver" ); @@ -119,7 +118,12 @@ void XclExpSetup::SaveXml( XclExpXmlStream& rStrm ) pAttrList->add( XML_blackAndWhite, ToPsz( mrData.mbBlackWhite ) ); pAttrList->add( XML_draft, ToPsz( mrData.mbDraftQuality ) ); pAttrList->add( XML_cellComments, mrData.mbPrintNotes ? "atEnd" : "none" ); // OOXTODO: "asDisplayed"? - pAttrList->add( XML_useFirstPageNumber, ToPsz( mrData.mbManualStart ) ); + + if ( mrData.mbManualStart ) + { + pAttrList->add( XML_firstPageNumber, OString::number( mrData.mnStartPage ).getStr() ); + pAttrList->add( XML_useFirstPageNumber, ToPsz( mrData.mbManualStart ) ); + } // OOXTODO: XML_errors, // == displayed|blank|dash|NA pAttrList->add( XML_horizontalDpi, OString::number( mrData.mnHorPrintRes ).getStr() ); pAttrList->add( XML_verticalDpi, OString::number( mrData.mnVerPrintRes ).getStr() ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits