sc/qa/unit/data/xlsx/tdf100034.xlsx    |binary
 sc/qa/unit/subsequent_export_test4.cxx |   16 ++++++++++++++++
 sc/source/filter/excel/xename.cxx      |    5 +++++
 3 files changed, 21 insertions(+)

New commits:
commit 639519dc2bad058197b6ff73c9e3df622f979f97
Author:     Czeber László Ádám <czeber.laszloa...@nisz.hu>
AuthorDate: Mon May 22 09:58:29 2023 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Tue May 23 12:15:56 2023 +0200

    tdf#100034: Fix to persistently remove print-range
    
    Don't save print range if the builtin index is unknow
    and sheet index is vaild (this is a deleted range).
    
    Change-Id: I10dfa98ad4f24d0f5958053974bd75cb19c85147
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152081
    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/tdf100034.xlsx 
b/sc/qa/unit/data/xlsx/tdf100034.xlsx
new file mode 100644
index 000000000000..b053a34bca43
Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf100034.xlsx differ
diff --git a/sc/qa/unit/subsequent_export_test4.cxx 
b/sc/qa/unit/subsequent_export_test4.cxx
index 46ea2547eadc..9d7dddc99c78 100644
--- a/sc/qa/unit/subsequent_export_test4.cxx
+++ b/sc/qa/unit/subsequent_export_test4.cxx
@@ -1697,6 +1697,22 @@ CPPUNIT_TEST_FIXTURE(ScExportTest4, testTdf152980)
     CPPUNIT_ASSERT_EQUAL(OUString("a\n\nb"), pDoc->GetString(0, 7, 0));
 }
 
+CPPUNIT_TEST_FIXTURE(ScExportTest4, testTdf100034)
+{
+    createScDoc("xlsx/tdf100034.xlsx");
+    ScDocument* pDoc = getScDoc();
+
+    // Clear print ranges
+    pDoc->ClearPrintRanges(0);
+
+    // Save and load back
+    saveAndReload("Calc Office Open XML");
+
+    // Check if the same print ranges are present
+    pDoc = getScDoc();
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(0), 
pDoc->GetPrintRangeCount(0));
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/excel/xename.cxx 
b/sc/source/filter/excel/xename.cxx
index 4e837a97fadf..5ce4a2ff18c4 100644
--- a/sc/source/filter/excel/xename.cxx
+++ b/sc/source/filter/excel/xename.cxx
@@ -324,6 +324,11 @@ OUString XclExpName::GetWithDefaultRangeSeparator( const 
OUString& rSymbol ) con
 
 void XclExpName::SaveXml( XclExpXmlStream& rStrm )
 {
+    // tdf#100034: Don't save print range if the built-in index is unknown
+    // and sheet index is valid (this is a deleted range)
+    if (mcBuiltIn == EXC_BUILTIN_UNKNOWN && mnScTab != SCTAB_GLOBAL)
+        return;
+
     sax_fastparser::FSHelperPtr& rWorkbook = rStrm.GetCurrentStream();
     rWorkbook->startElement( XML_definedName,
             // OOXTODO: XML_comment, "",

Reply via email to