From 25763e59625ce83de4b82927359108f9e7878744 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Thu, 15 Aug 2013 01:03:00 +0200 Subject: resolved fdo#67571 write flags and formula token array again Regression introduced with 337066eb1fa395990b78d1032c399a4688d2a6f9, flags and formula token array weren't written if the formula result was an error value. Change-Id: I8ccd55a7b43d5ceb79002e01f0b3d33d36d85538 --- sc/source/filter/excel/xetable.cxx | 66 +++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 8e0d763762fd..b63aa96f03d7 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -940,45 +940,45 @@ void XclExpFormulaCell::WriteContents( XclExpStream& rStrm ) << XclTools::GetXclErrorCode( nScErrCode ) << sal_uInt8( 0 ) << sal_uInt16( 0 ) << sal_uInt16( 0xFFFF ); - - return; } - - // result of the formula - switch( mrScFmlaCell.GetFormatType() ) + else { - case NUMBERFORMAT_NUMBER: + // result of the formula + switch( mrScFmlaCell.GetFormatType() ) { - // either value or error code - rStrm << mrScFmlaCell.GetValue(); - } - break; + case NUMBERFORMAT_NUMBER: + { + // either value or error code + rStrm << mrScFmlaCell.GetValue(); + } + break; - case NUMBERFORMAT_TEXT: - { - OUString aResult = mrScFmlaCell.GetString(); - if( !aResult.isEmpty() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) ) - { - rStrm << EXC_FORMULA_RES_STRING; - mxStringRec.reset( new XclExpStringRec( rStrm.GetRoot(), aResult ) ); - } - else - rStrm << EXC_FORMULA_RES_EMPTY; // BIFF8 only - rStrm << sal_uInt8( 0 ) << sal_uInt32( 0 ) << sal_uInt16( 0xFFFF ); - } - break; + case NUMBERFORMAT_TEXT: + { + OUString aResult = mrScFmlaCell.GetString(); + if( !aResult.isEmpty() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) ) + { + rStrm << EXC_FORMULA_RES_STRING; + mxStringRec.reset( new XclExpStringRec( rStrm.GetRoot(), aResult ) ); + } + else + rStrm << EXC_FORMULA_RES_EMPTY; // BIFF8 only + rStrm << sal_uInt8( 0 ) << sal_uInt32( 0 ) << sal_uInt16( 0xFFFF ); + } + break; - case NUMBERFORMAT_LOGICAL: - { - sal_uInt8 nXclValue = (mrScFmlaCell.GetValue() == 0.0) ? 0 : 1; - rStrm << EXC_FORMULA_RES_BOOL << sal_uInt8( 0 ) - << nXclValue << sal_uInt8( 0 ) << sal_uInt16( 0 ) - << sal_uInt16( 0xFFFF ); - } - break; + case NUMBERFORMAT_LOGICAL: + { + sal_uInt8 nXclValue = (mrScFmlaCell.GetValue() == 0.0) ? 0 : 1; + rStrm << EXC_FORMULA_RES_BOOL << sal_uInt8( 0 ) + << nXclValue << sal_uInt8( 0 ) << sal_uInt16( 0 ) + << sal_uInt16( 0xFFFF ); + } + break; - default: - rStrm << mrScFmlaCell.GetValue(); + default: + rStrm << mrScFmlaCell.GetValue(); + } } // flags and formula token array -- cgit