diff options
Diffstat (limited to 'sc/source/core/tool/compiler.cxx')
-rw-r--r-- | sc/source/core/tool/compiler.cxx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 9d272197c06d..a841c804b9a3 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -1023,7 +1023,8 @@ struct ConventionOOO_A1_ODF : public ConventionOOO_A1 if( !bSingleRef ) aAbs2 = rRef.Ref2.toAbs(rPos); - if (FormulaGrammar::isODFF(eGram) && (!ValidAddress(aAbs1) || !ValidAddress(aAbs2))) + if (FormulaGrammar::isODFF(eGram) && (rRef.Ref1.IsDeleted() || !ValidAddress(aAbs1) || + (!bSingleRef && (rRef.Ref2.IsDeleted() || !ValidAddress(aAbs2))))) { rBuffer.append(rErrRef); // For ODFF write [#REF!], but not for PODF so apps reading ODF @@ -1421,6 +1422,14 @@ struct ConventionXL_OOX : public ConventionXL_A1 aPos.SetRow(0); } + if (rRef.Ref1.IsDeleted() || (!bSingleRef && rRef.Ref2.IsDeleted())) + { + // For OOXML write plain "#REF!" instead of detailed sheet/col/row + // information. + rBuf.append(rErrRef); + return; + } + ConventionXL_A1::makeRefStr( rBuf, eGram, aPos, rErrRef, rTabNames, rRef, bSingleRef, bFromRangeName); } |