sc/qa/unit/data/xlsx/tdf41425.xlsx |binary sc/qa/unit/subsequent_export-test.cxx | 16 ++++++++++++++++ sc/source/filter/excel/xetable.cxx | 3 +++ 3 files changed, 19 insertions(+)
New commits: commit 772c80f7581eb6902c972ce87028a5f5e7f8c4f9 Author: László Németh <[email protected]> AuthorDate: Fri Aug 3 16:11:16 2018 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Sep 17 16:35:47 2018 +0200 tdf#41425 XLS/XLSX export: workaround for style and validation loss of cells of blank rows. This workaround is probably a fix for problems of most users, but for a full solution it needs to extend the workaround for all rows with not default settings, also avoiding of the possible performance problems. Note: the number 1000 of the extra rows came from a similar workaround used in XLSX export of Google Spreadsheets, but instead of listing extra empty 1000 rows in OOXML, this fix writes only the cells with not default settings from the extra 1000 blank rows. Reviewed-on: https://gerrit.libreoffice.org/58575 Tested-by: Jenkins Reviewed-by: László Németh <[email protected]> (cherry picked from commit 99b9ea63bfc9a5fe63a0cd7b30b66ce2c1bde08e) Reviewed-on: https://gerrit.libreoffice.org/58812 Reviewed-by: Christian Lohmaier <[email protected]> (cherry picked from commit d7cbaac61b8f3575184c675a760907c3b4bb225e) Change-Id: Icac9441b7eb1520dcd20fc04337e070d070591c7 diff --git a/sc/qa/unit/data/xlsx/tdf41425.xlsx b/sc/qa/unit/data/xlsx/tdf41425.xlsx new file mode 100644 index 000000000000..f7d3ec9ed6ec Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf41425.xlsx differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index a071b12b7493..4e50010fb8b9 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -209,6 +209,8 @@ public: void testHyperlinkTargetFrameODS(); void testOpenDocumentAsReadOnly(); void testTdf118990(); + void testKeepSettingsOfBlankRows(); + CPPUNIT_TEST_SUITE(ScExportTest); CPPUNIT_TEST(test); @@ -318,6 +320,7 @@ public: CPPUNIT_TEST(testHyperlinkTargetFrameODS); CPPUNIT_TEST(testOpenDocumentAsReadOnly); CPPUNIT_TEST(testTdf118990); + CPPUNIT_TEST(testKeepSettingsOfBlankRows); CPPUNIT_TEST_SUITE_END(); @@ -4086,6 +4089,19 @@ void ScExportTest::testTdf118990() xDocSh->DoClose(); } +void ScExportTest::testKeepSettingsOfBlankRows() +{ + ScDocShellRef xDocSh = loadDoc("tdf41425.", FORMAT_XLSX); + CPPUNIT_ASSERT(xDocSh.is()); + + std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xDocSh), FORMAT_XLSX); + xmlDocPtr pSheet = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/worksheets/sheet1.xml"); + CPPUNIT_ASSERT(pSheet); + + // saved blank row with not default setting in A2 + assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row", 2); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 75980091a640..1fc75abd4380 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -2456,6 +2456,9 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) : if(nLastUsedScCol > nMaxScCol) nLastUsedScCol = nMaxScCol; + // check extra blank rows to avoid of losing their not default settings (workaround for tdf#41425) + nLastUsedScRow += 1000; + if(nLastUsedScRow > nMaxScRow) nLastUsedScRow = nMaxScRow; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
