--- sc/source/core/tool/cellform.cxx (revision 1389681) +++ sc/source/core/tool/cellform.cxx (working copy) @@ -129,11 +129,25 @@ rString.Erase(); else if ( pFCell->IsValue() ) { - double fValue = pFCell->GetValue(); - if ( !bNullVals && fValue == 0.0 ) - rString.Erase(); + if(pFCell->GetFormatType() == NUMBERFORMAT_LOGICAL) + { + String aCellString; + double fValue = pFCell->GetValue(); + if(fValue) + aCellString = rFormatter.GetTrueString(); + else + aCellString = rFormatter.GetFalseString(); + rFormatter.GetOutputString( aCellString, nFormat, rString, ppColor ); + + } else - rFormatter.GetOutputString( fValue, nFormat, rString, ppColor ); + { + double fValue = pFCell->GetValue(); + if ( !bNullVals && fValue == 0.0 ) + rString.Erase(); + else + rFormatter.GetOutputString( fValue, nFormat, rString, ppColor ); + } } else { --- sc/source/filter/excel/xistyle.cxx (revision 1389681) +++ sc/source/filter/excel/xistyle.cxx (working copy) @@ -1513,8 +1513,9 @@ if( XclImpXF* pXF = GetXF( rXFIndex.GetXFIndex() ) ) { // #108770# set 'Standard' number format for all Boolean cells - sal_uLong nForceScNumFmt = rXFIndex.IsBoolCell() ? GetNumFmtBuffer().GetStdScNumFmt() : NUMBERFORMAT_ENTRY_NOT_FOUND; - pXF->ApplyPattern( nScCol1, nScRow1, nScCol2, nScRow2, nScTab, nForceScNumFmt ); + //sal_uLong nForceScNumFmt = rXFIndex.IsBoolCell() ? GetNumFmtBuffer().GetStdScNumFmt() : NUMBERFORMAT_ENTRY_NOT_FOUND; + sal_uLong nForceScNumFmt = NUMBERFORMAT_ENTRY_NOT_FOUND; + pXF->ApplyPattern( nScCol1, nScRow1, nScCol2, nScRow2, nScTab, nForceScNumFmt ); } } --- svl/inc/svl/zforlist.hxx (revision 1389681) +++ svl/inc/svl/zforlist.hxx (working copy) @@ -796,7 +796,10 @@ /// Skip a NumberFormatter in stream, Chart needs this static void SkipNumberFormatterInStream( SvStream& ); + const String& GetTrueString(); + const String& GetFalseString(); + private: ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager; ::com::sun::star::lang::Locale aLocale; --- svl/source/numbers/zforlist.cxx (revision 1389681) +++ svl/source/numbers/zforlist.cxx (working copy) @@ -3043,6 +3043,8 @@ return (sal_uInt16) ::utl::MiscCfg().GetYear2000(); } +const String& SvNumberFormatter::GetTrueString(){return pFormatScanner->GetTrueString();} +const String& SvNumberFormatter::GetFalseString(){return pFormatScanner->GetFalseString();} // static const NfCurrencyTable& SvNumberFormatter::GetTheCurrencyTable()