diff options
Diffstat (limited to 'sc/source/filter/xcl97/xcl97rec.cxx')
-rw-r--r-- | sc/source/filter/xcl97/xcl97rec.cxx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx index 17420fe5c69e..b693838f74fe 100644 --- a/sc/source/filter/xcl97/xcl97rec.cxx +++ b/sc/source/filter/xcl97/xcl97rec.cxx @@ -65,6 +65,7 @@ #include <oox/export/shapes.hxx> #include <oox/export/utils.hxx> #include <oox/export/vmlexport.hxx> +#include <detfunc.hxx> #include <memory> @@ -1020,6 +1021,7 @@ ExcBof8_Base::ExcBof8_Base() nRupBuild = 0x0dbb; nRupYear = 0x07cc; } + void XclObjAny::WriteFromTo( XclExpXmlStream& rStrm, const Reference< XShape >& rShape, SCTAB nTab ) { sax_fastparser::FSHelperPtr pDrawing = rStrm.GetCurrentStream(); @@ -1199,6 +1201,21 @@ void XclObjAny::SaveXml( XclExpXmlStream& rStrm ) if( !mxShape.is() || mxShape->getShapeType() == "com.sun.star.drawing.GroupShape" ) return; + // Do not output any of the detective shapes and validation circles. + SdrObject* pObject = GetSdrObjectFromXShape(mxShape); + if (pObject) + { + ScDocument& rDoc = rStrm.GetRoot().GetDoc(); + ScDetectiveFunc aDetFunc(&rDoc, mnScTab); + ScAddress aPosition; + ScRange aSourceRange; + bool bRedLine; + ScDetectiveObjType eObjType = aDetFunc.GetDetectiveObjectType(pObject, mnScTab, aPosition, aSourceRange, bRedLine); + + if (eObjType != SC_DETOBJ_NONE) + return; + } + sax_fastparser::FSHelperPtr pDrawing = rStrm.GetCurrentStream(); ShapeExport aDML(XML_xdr, pDrawing, nullptr, &rStrm, drawingml::DOCUMENT_XLSX); |