sc/qa/unit/data/xlsx/tdf142905.xlsx |binary sc/qa/unit/subsequent_filters_test4.cxx | 12 ++++++++++++ sc/source/filter/oox/excelhandlers.cxx | 4 +++- 3 files changed, 15 insertions(+), 1 deletion(-)
New commits: commit 15e8278144a7326e9587a665e9e1068562309295 Author: Czeber László Ádám <czeber.laszloa...@nisz.hu> AuthorDate: Thu Jul 20 13:14:21 2023 +0200 Commit: László Németh <nem...@numbertext.org> CommitDate: Wed Jul 26 11:02:57 2023 +0200 tdf#142905 XLSX import: don't trim leading spaces in formula cell When importing an XLSX file, there was a discrepancy between the read and recalculated cell values if it contains leading/ending spaces. With this fix, trimming in worksheet files is only applied to elements that contain a parameter and do not have a space="preserved" parameter. Change-Id: I91e09eaa3cb79537ddbed36e1124e4afd124d8f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154674 Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> (cherry picked from commit 864e5cdb0cc91b9bf2ea0428590094a8901b33ed) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154914 Tested-by: Jenkins diff --git a/sc/qa/unit/data/xlsx/tdf142905.xlsx b/sc/qa/unit/data/xlsx/tdf142905.xlsx new file mode 100644 index 000000000000..b6e8296581c3 Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf142905.xlsx differ diff --git a/sc/qa/unit/subsequent_filters_test4.cxx b/sc/qa/unit/subsequent_filters_test4.cxx index 646b1e66f5b7..27d9d6f29150 100644 --- a/sc/qa/unit/subsequent_filters_test4.cxx +++ b/sc/qa/unit/subsequent_filters_test4.cxx @@ -1918,6 +1918,18 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testTdf155402) CPPUNIT_ASSERT_EQUAL(OUString("/[tdf155402.xlsx]Sheet1"), aFilename); } +CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testTdf142905) +{ + createScDoc("xlsx/tdf142905.xlsx"); + ScDocument* pDoc = getScDoc(); + + // Without the fix, trims the spaces in cell C1 after reading the XLSX file. + // After recalculation it is fixed. + // - Expected: " 3M " + // - Actual : "3M" + CPPUNIT_ASSERT_EQUAL(OUString(" 3M "), pDoc->GetString(2, 0, 0)); +} + ScFiltersTest4::ScFiltersTest4() : ScModelTestBase("sc/qa/unit/data") { diff --git a/sc/source/filter/oox/excelhandlers.cxx b/sc/source/filter/oox/excelhandlers.cxx index ab39116b695b..77b5dda2ade7 100644 --- a/sc/source/filter/oox/excelhandlers.cxx +++ b/sc/source/filter/oox/excelhandlers.cxx @@ -30,9 +30,11 @@ WorkbookFragmentBase::WorkbookFragmentBase( { } +// tdf142905: Change mbEnableTrimSpace default value is false, +// because it will not trim members that do not have an attribute. WorksheetFragmentBase::WorksheetFragmentBase( const WorksheetHelper& rHelper, const OUString& rFragmentPath ) : - FragmentHandler2( rHelper.getOoxFilter(), rFragmentPath ), + FragmentHandler2( rHelper.getOoxFilter(), rFragmentPath, false ), WorksheetHelper( rHelper ) { }