diff options
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/filter/excel/excrecds.cxx | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sc/source/filter/excel/excrecds.cxx b/sc/source/filter/excel/excrecds.cxx index 8c66caebdea5..8ce820bb2389 100644 --- a/sc/source/filter/excel/excrecds.cxx +++ b/sc/source/filter/excel/excrecds.cxx @@ -809,7 +809,7 @@ void XclExpAutofilter::WriteBody( XclExpStream& rStrm ) void XclExpAutofilter::SaveXml( XclExpXmlStream& rStrm ) { - if (meType == FilterCondition && !HasCondition()) + if (meType == FilterCondition && !HasCondition() && !HasTop10()) return; sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream(); @@ -833,12 +833,14 @@ void XclExpAutofilter::SaveXml( XclExpXmlStream& rStrm ) // OOXTODO: XML_filterVal ); } - - rWorksheet->startElement( XML_customFilters, - XML_and, ToPsz((nFlags & EXC_AFFLAG_ANDORMASK) == EXC_AFFLAG_AND) ); - aCond[ 0 ].SaveXml( rStrm ); - aCond[ 1 ].SaveXml( rStrm ); - rWorksheet->endElement( XML_customFilters ); + else + { + rWorksheet->startElement(XML_customFilters, XML_and, + ToPsz((nFlags & EXC_AFFLAG_ANDORMASK) == EXC_AFFLAG_AND)); + aCond[0].SaveXml(rStrm); + aCond[1].SaveXml(rStrm); + rWorksheet->endElement(XML_customFilters); + } // OOXTODO: XML_dynamicFilter, XML_extLst, XML_filters, XML_iconFilter } break; |