formula/source/core/api/FormulaCompiler.cxx |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit ea98a7cf6ed8c97993f60e9f8a07b09d1cc57ffc
Author:     Karthik Godha <[email protected]>
AuthorDate: Wed Feb 11 16:38:38 2026 +0530
Commit:     Michael Stahl <[email protected]>
CommitDate: Wed Feb 11 17:00:25 2026 +0100

    XLSX: Discard formulas with invalid external reference
    
    A formula can contain `ocExternal` token without a valid external
    reference. Discard them in OOXML export
    
    bug-document: forum-mso-en4-31562.xls
    Change-Id: I7049ad2966c8d14d12b7845b32616ad262a25f99
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199154
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/formula/source/core/api/FormulaCompiler.cxx 
b/formula/source/core/api/FormulaCompiler.cxx
index 49d0e873596c..69e7d5c9d1bc 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -2523,8 +2523,9 @@ void FormulaCompiler::CreateStringFromTokenArray( 
OUStringBuffer& rBuffer )
     while( t )
     {
         // Discard writing unknown functions without a name in OOXML ex: 
#NAME!()
-        if (t->GetOpCode() == ocNoName && t->GetType() == svByte
-            && FormulaGrammar::isOOXML(meGrammar))
+        if (FormulaGrammar::isOOXML(meGrammar)
+            && (t->GetOpCode() == ocNoName || t->GetOpCode() == ocExternal)
+            && t->GetType() == svByte)
         {
             rBuffer.setLength(0);
             rBuffer.append(GetNativeSymbol(ocErrRef));

Reply via email to