diff options
-rw-r--r-- | include/oox/export/chartexport.hxx | 3 | ||||
-rw-r--r-- | oox/source/export/chartexport.cxx | 36 |
2 files changed, 39 insertions, 0 deletions
diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx index 170fe91031b6..ddc60871f521 100644 --- a/include/oox/export/chartexport.hxx +++ b/include/oox/export/chartexport.hxx @@ -178,6 +178,9 @@ private: void exportView3D(); bool isDeep3dChart(); + void exportMissingValueTreatment(com::sun::star::uno::Reference< + com::sun::star::beans::XPropertySet> xPropSet); + public: ChartExport( sal_Int32 nXmlNamespace, ::sax_fastparser::FSHelperPtr pFS, ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel, ::oox::core::XmlFilterBase* pFB = NULL, DocumentType eDocumentType = DOCUMENT_PPTX ); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 7209fe238de2..716124241b48 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -45,6 +45,7 @@ #include <com/sun/star/chart/ChartSolidType.hpp> #include <com/sun/star/chart/DataLabelPlacement.hpp> #include <com/sun/star/chart/ErrorBarStyle.hpp> +#include <com/sun/star/chart/MissingValueTreatment.hpp> #include <com/sun/star/chart2/XChartDocument.hpp> #include <com/sun/star/chart2/XDiagram.hpp> @@ -904,9 +905,44 @@ void ChartExport::exportChart( Reference< ::com::sun::star::chart::XChartDocumen XML_val, "1", FSEND ); + exportMissingValueTreatment(Reference<beans::XPropertySet>(mxDiagram, uno::UNO_QUERY)); + pFS->endElement( FSNS( XML_c, XML_chart ) ); } +void ChartExport::exportMissingValueTreatment(uno::Reference<beans::XPropertySet> xPropSet) +{ + if (!xPropSet.is()) + return; + + sal_Int32 nVal = 0; + uno::Any aAny = xPropSet->getPropertyValue("MissingValueTreatment"); + if (!(aAny >>= nVal)) + return; + + const char* pVal = NULL; + switch (nVal) + { + case cssc::MissingValueTreatment::LEAVE_GAP: + pVal = "gap"; + break; + case cssc::MissingValueTreatment::USE_ZERO: + pVal = "zero"; + break; + case cssc::MissingValueTreatment::CONTINUE: + pVal = "span"; + break; + default: + SAL_WARN("oox", "unknown MissingValueTreatment value"); + break; + } + + FSHelperPtr pFS = GetFS(); + pFS->singleElement( FSNS(XML_c, XML_dispBlanksAs), + XML_val, pVal, + FSEND); +} + void ChartExport::exportLegend( Reference< ::com::sun::star::chart::XChartDocument > rChartDoc ) { FSHelperPtr pFS = GetFS(); |