diff options
-rw-r--r-- | include/oox/export/chartexport.hxx | 4 | ||||
-rw-r--r-- | oox/source/export/chartexport.cxx | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx index 186ea756999c..c043fd7157cd 100644 --- a/include/oox/export/chartexport.hxx +++ b/include/oox/export/chartexport.hxx @@ -30,6 +30,8 @@ #include <com/sun/star/chart2/RelativePosition.hpp> #include <com/sun/star/chart2/RelativeSize.hpp> +#include <set> + namespace com { namespace sun { namespace star { namespace chart { class XDiagram; @@ -103,6 +105,8 @@ private: bool mbStacked; bool mbPercent; + std::set<sal_Int32> maExportedAxis; + private: sal_Int32 getChartType(); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 9c56a7e7773d..4fcf8033ee74 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2611,6 +2611,7 @@ void ChartExport::_exportAxis( pFS->startElement( FSNS( XML_c, XML_scaling ), FSEND ); + // logBase, min, max if(GetProperty( xAxisProp, "Logarithmic" ) ) { @@ -2671,8 +2672,15 @@ void ChartExport::_exportAxis( OUString ("Visible")) >>= bVisible; } + // only export each axis only once non-deleted + bool bDeleted = std::find(maExportedAxis.begin(), + maExportedAxis.end(), rAxisIdPair.nAxisType) != maExportedAxis.end(); + + if (!bDeleted) + maExportedAxis.insert(rAxisIdPair.nAxisType); + pFS->singleElement( FSNS( XML_c, XML_delete ), - XML_val, bVisible ? "0" : "1", + XML_val, !bDeleted && bVisible ? "0" : "1", FSEND ); // FIXME: axPos, need to check the property "ReverseDirection" |