summaryrefslogtreecommitdiff
path: root/sc/source/filter/xcl97/xcl97rec.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/xcl97/xcl97rec.cxx')
-rw-r--r--sc/source/filter/xcl97/xcl97rec.cxx17
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);