summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-05-07 03:05:07 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-06-02 03:25:49 +0200
commit337066eb1fa395990b78d1032c399a4688d2a6f9 (patch)
tree05d1e41569ea97c19789df9550698789e3d15f40
parentd6b10909221e15c3c33fb354e42a77b03657c51b (diff)
bail out early for error cells
Change-Id: Ice38b42cdd01b8dbb472752d2c8e1679181f8422
-rw-r--r--sc/source/filter/excel/xetable.cxx20
1 files changed, 12 insertions, 8 deletions
diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx
index 8945f16c225b..55c54c014e37 100644
--- a/sc/source/filter/excel/xetable.cxx
+++ b/sc/source/filter/excel/xetable.cxx
@@ -887,20 +887,24 @@ void XclExpFormulaCell::SaveXml( XclExpXmlStream& rStrm )
void XclExpFormulaCell::WriteContents( XclExpStream& rStrm )
{
+ sal_uInt16 nScErrCode = mrScFmlaCell.GetErrCode();
+ if( nScErrCode )
+ {
+ rStrm << EXC_FORMULA_RES_ERROR << sal_uInt8( 0 )
+ << XclTools::GetXclErrorCode( nScErrCode )
+ << sal_uInt8( 0 ) << sal_uInt16( 0 )
+ << sal_uInt16( 0xFFFF );
+
+ return;
+ }
+
// result of the formula
switch( mrScFmlaCell.GetFormatType() )
{
case NUMBERFORMAT_NUMBER:
{
// either value or error code
- sal_uInt16 nScErrCode = mrScFmlaCell.GetErrCode();
- if( nScErrCode )
- rStrm << EXC_FORMULA_RES_ERROR << sal_uInt8( 0 )
- << XclTools::GetXclErrorCode( nScErrCode )
- << sal_uInt8( 0 ) << sal_uInt16( 0 )
- << sal_uInt16( 0xFFFF );
- else
- rStrm << mrScFmlaCell.GetValue();
+ rStrm << mrScFmlaCell.GetValue();
}
break;