diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-07-02 09:53:54 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-07-02 22:50:37 -0400 |
commit | 7554f619f03e1fcadd333f2792913f412c0a7031 (patch) | |
tree | 05e27cff79361271474bfa5b93d024a6d0f95755 /oox | |
parent | 732076e974291a07f29cddfbb4e0763ddce5fc8c (diff) |
bnc#812796: Correctly handle static value array for OOXML charts.
We need to pass the role of the data sequence in order to avoid unreliable
guess work when importing static value array.
Also, not all Excel's scatter plots have real numeric X values; some have
textural X values in which case Excel switch to generating 1, 2, 3, ... as
X values. When importing to our chart implementation, using "categories" role
in such cases instead of "values-x" results in a more faithful chart rendering.
(cherry picked from commit 6c4e21a234f12e1310ba06f9859e08b424acf8bf)
Conflicts:
chart2/source/inc/InternalDataProvider.hxx
chart2/source/tools/InternalDataProvider.cxx
Conflicts:
chart2/source/inc/InternalDataProvider.hxx
dbaccess/source/core/inc/DatabaseDataProvider.hxx
dbaccess/source/core/misc/DatabaseDataProvider.cxx
sc/source/filter/inc/excelchartconverter.hxx
Change-Id: If4bc1f650bb024dcd1b1b36537f457fb38404a78
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/chart/chartconverter.cxx | 6 | ||||
-rw-r--r-- | oox/source/drawingml/chart/datasourceconverter.cxx | 4 | ||||
-rw-r--r-- | oox/source/drawingml/chart/seriesconverter.cxx | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/oox/source/drawingml/chart/chartconverter.cxx b/oox/source/drawingml/chart/chartconverter.cxx index 03eff1b50f06..234d063c310e 100644 --- a/oox/source/drawingml/chart/chartconverter.cxx +++ b/oox/source/drawingml/chart/chartconverter.cxx @@ -120,7 +120,9 @@ void ChartConverter::createDataProvider( const Reference< XChartDocument >& rxCh } } -Reference< XDataSequence > ChartConverter::createDataSequence( const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq ) +Reference< XDataSequence > ChartConverter::createDataSequence( + const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq, + const OUString& rRole ) { Reference< XDataSequence > xDataSeq; if( rxDataProvider.is() ) @@ -140,7 +142,7 @@ Reference< XDataSequence > ChartConverter::createDataSequence( const Reference< if( !aRangeRep.isEmpty() ) try { // create the data sequence - xDataSeq = rxDataProvider->createDataSequenceByRangeRepresentation( aRangeRep ); + xDataSeq = rxDataProvider->createDataSequenceByValueArray(rRole, aRangeRep); return xDataSeq; } catch( Exception& ) diff --git a/oox/source/drawingml/chart/datasourceconverter.cxx b/oox/source/drawingml/chart/datasourceconverter.cxx index ea22348c3cc0..28ec95fb55be 100644 --- a/oox/source/drawingml/chart/datasourceconverter.cxx +++ b/oox/source/drawingml/chart/datasourceconverter.cxx @@ -78,9 +78,9 @@ Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUSt mrModel.maData.insert(std::make_pair<sal_Int32, Any>(1, Any(aTitle.makeStringAndClear()))); } } - xDataSeq = getChartConverter()->createDataSequence( getChartDocument()->getDataProvider(), mrModel ); + xDataSeq = getChartConverter()->createDataSequence(getChartDocument()->getDataProvider(), mrModel, rRole); - // set sequen ce role + // set sequence role PropertySet aSeqProp( xDataSeq ); aSeqProp.setProperty( PROP_Role, rRole ); } diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 83761e1e58b4..dbd3201a3c98 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -531,7 +531,7 @@ SeriesConverter::~SeriesConverter() Reference< XLabeledDataSequence > SeriesConverter::createCategorySequence( const OUString& rRole ) { - return createLabeledDataSequence( SeriesModel::CATEGORIES, rRole, false ); + return createLabeledDataSequence(SeriesModel::CATEGORIES, rRole, false); } Reference< XLabeledDataSequence > SeriesConverter::createValueSequence( const OUString& rRole ) |