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));
