diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2013-05-07 03:05:07 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2013-06-02 03:25:49 +0200 |
commit | 337066eb1fa395990b78d1032c399a4688d2a6f9 (patch) | |
tree | 05d1e41569ea97c19789df9550698789e3d15f40 /sc | |
parent | d6b10909221e15c3c33fb354e42a77b03657c51b (diff) |
bail out early for error cells
Change-Id: Ice38b42cdd01b8dbb472752d2c8e1679181f8422
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/excel/xetable.cxx | 20 |
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; |