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 7ec4c6df68233b73b1e257e013583ca49fc2ec9b
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: Tue Jul 25 15:50:15 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>

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 )
 {
 }

Reply via email to