sc/qa/unit/data/ods/hidden-empty-rows.ods |binary sc/qa/unit/subsequent_export-test.cxx | 17 +++++++++++++++++ sc/source/filter/excel/xepage.cxx | 5 ++++- 3 files changed, 21 insertions(+), 1 deletion(-)
New commits: commit 46094ff4b0ea06931f2af3fc45d00fd38c3ebf26 Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Sat Jul 2 03:29:26 2016 +0200 tdf#48767 Fix orientation issue after export to .xlsx After save to .xlsx in usePrinterDefaults was added into PageSetup. Due to bug in MS Excel, when usePrinterDefaults is present, (no matter what value), the orientation of the Page is alway "portrait". To resolve that issue, if usePrinterDefaults is set to default value, then usePrinterDefaults XML field is not added during export to .xlsx Change-Id: I3ab310babb278913bce3d66f7fae1192ed9727b9 Reviewed-on: https://gerrit.libreoffice.org/26871 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/qa/unit/data/ods/hidden-empty-rows.ods b/sc/qa/unit/data/ods/hidden-empty-rows.ods index f3435ad..1e3017e 100644 Binary files a/sc/qa/unit/data/ods/hidden-empty-rows.ods and b/sc/qa/unit/data/ods/hidden-empty-rows.ods differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 131069b..66ddef9 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -111,6 +111,7 @@ public: void testFormatExportODS(); void testHiddenEmptyRowsXLSX(); + void testLandscapeOrientationXLSX(); void testInlineArrayXLS(); void testEmbeddedChartXLS(); @@ -195,6 +196,7 @@ public: CPPUNIT_TEST(testCellNoteExportXLS); CPPUNIT_TEST(testFormatExportODS); CPPUNIT_TEST(testHiddenEmptyRowsXLSX); + CPPUNIT_TEST(testLandscapeOrientationXLSX); CPPUNIT_TEST(testInlineArrayXLS); CPPUNIT_TEST(testEmbeddedChartXLS); CPPUNIT_TEST(testCellAnchoredGroupXLS); @@ -490,6 +492,21 @@ void ScExportTest::testHiddenEmptyRowsXLSX() assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[4]", "hidden", "false"); } +void ScExportTest::testLandscapeOrientationXLSX() +{ + //tdf#48767 - Landscape page orientation is not loaded from .xlsx format with MS Excel, after export with Libre Office + ScDocShellRef xShell = loadDoc("hidden-empty-rows.", FORMAT_ODS); + CPPUNIT_ASSERT(xShell.Is()); + + std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xShell), FORMAT_XLSX); + xmlDocPtr pSheet = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/worksheets/sheet1.xml"); + CPPUNIT_ASSERT(pSheet); + + // the usePrinterDefaults cannot be saved to allow opening sheets in Landscape mode via MS Excel + assertXPathNoAttribute(pSheet, "/x:worksheet/x:pageSetup", "usePrinterDefaults"); + assertXPath(pSheet, "/x:worksheet/x:pageSetup", "orientation", "landscape"); +} + void ScExportTest::testDataBarExportXLSX() { ScDocShellRef xShell = loadDoc("databar.", FORMAT_XLSX); diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx index 2895819..31c17b6 100644 --- a/sc/source/filter/excel/xepage.cxx +++ b/sc/source/filter/excel/xepage.cxx @@ -102,7 +102,10 @@ void XclExpSetup::SaveXml( XclExpXmlStream& rStrm ) pAttrList->add( XML_fitToHeight, OString::number( mrData.mnFitToHeight ).getStr() ); pAttrList->add( XML_pageOrder, mrData.mbPrintInRows ? "overThenDown" : "downThenOver" ); pAttrList->add( XML_orientation, mrData.mbPortrait ? "portrait" : "landscape" ); // OOXTODO: "default"? - pAttrList->add( XML_usePrinterDefaults, XclXmlUtils::ToPsz( !mrData.mbValid ) ); + // tdf#48767 if XML_usePrinterDefaults field is exist, then XML_orientation is always "portrait" in MS Excel + // To resolve that import issue, if XML_usePrinterDefaults has default value (false) then XML_usePrinterDefaults is not added. + if ( !mrData.mbValid ) + pAttrList->add( XML_usePrinterDefaults, XclXmlUtils::ToPsz( !mrData.mbValid ) ); pAttrList->add( XML_blackAndWhite, XclXmlUtils::ToPsz( mrData.mbBlackWhite ) ); pAttrList->add( XML_draft, XclXmlUtils::ToPsz( mrData.mbDraftQuality ) ); pAttrList->add( XML_cellComments, mrData.mbPrintNotes ? "atEnd" : "none" ); // OOXTODO: "asDisplayed"? _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits