[Libreoffice-commits] core.git: sc/qa sc/source

Bartosz Kosiorek gang65 at poczta.onet.pl
Sun Jul 3 23:58:20 UTC 2016


 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 <gang65 at 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 <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at 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"?


More information about the Libreoffice-commits mailing list