diff options
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/xml/xmlcelli.cxx | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx index 3ff5b588c00a..791f3f0eb10d 100644 --- a/sc/source/filter/xml/xmlcelli.cxx +++ b/sc/source/filter/xml/xmlcelli.cxx @@ -760,7 +760,8 @@ void ScXMLTableRowCellContext::AddTextCellToDoc( const ScAddress& rCurrentPos, pFCell->SetHybridString( *pOUText ); else bDoIncrement = false; - pFCell->ResetDirty(); + if( !pFCell->GetCode()->IsRecalcModeAlways() ) + pFCell->ResetDirty(); } } else @@ -798,7 +799,8 @@ void ScXMLTableRowCellContext::AddNumberCellToDoc( const ScAddress& rCurrentPos pFCell->SetHybridString( *pOUTextValue ); else pFCell->SetHybridDouble( fValue ); - pFCell->ResetDirty(); + if( !pFCell->GetCode()->IsRecalcModeAlways() ) + pFCell->ResetDirty(); } } else @@ -1029,7 +1031,8 @@ void ScXMLTableRowCellContext::AddNonMatrixFormulaCell( const ScAddress& rCellPo pFCell->SetHybridString( *pOUTextValue ); else pFCell->SetHybridDouble( fValue ); - pFCell->ResetDirty(); + if( !(pFCell->GetCode()->IsRecalcModeOnLoad() || !pFCell->GetCode()->IsRecalcModeOnLoadOnce()) ) + pFCell->ResetDirty(); } else if ( aText[0] == '\'' && aText.getLength() > 1 ) { @@ -1081,7 +1084,8 @@ void ScXMLTableRowCellContext::AddFormulaCell( const ScAddress& rCellPos ) pFCell->SetHybridString( *pOUTextValue ); else pFCell->SetHybridDouble( fValue ); - pFCell->ResetDirty(); + if( !pFCell->GetCode()->IsRecalcModeAlways() ) + pFCell->ResetDirty(); } } } |