Apache OpenOffice (AOO) Bugzilla – Issue 119639
the chart display incorrectly after save as ods from xls in AOO3.4
Last modified: 2012-09-06 08:16:32 UTC
Created attachment 77865 [details] sample file build info:AOO3.4_1327774 Steps: 1.open the file in AOO3.4 2.save the file as ods format,and reopen the new file defect: the chart display incorrectly.
can reproduce on AOO3.4 r1327774
Seems the chart isn't a standard chart type but comes from Excel chart template.
The chart in the sample is not a standard chart but a composite chart. Series 1, 2 and 4 are percent stacked columns which were applied to the main Y axis, while series 3 is normal column which was applied to the secondary Y axis. So series 3 will cover some part of Series 1, 2 and 4. MS Office supports such chart. It can set one or more data series to another chart type. AOO's UI cannot do this. But the chart kernal function supports. So when open the sample file the chart looks OK. However, the ODF format doesn't support this, that why after save the sample to ods and reopen, the chart becomes incorrect(Series 3 occupy 100% space of the percent stacked column). The reason is AOO defined a style 'ch4' and applied to <chart:plot-area>. In this style, the chart:percentage attribute was set to true. This attribute specifies a percentage accumulation of values per category. Because this style was applied to <chart:plot-area>, then all data series are regarded as percent columns. And series 3 is a unique data series which applied to the secondary Y axis. So it occpy the total 100% space so that other data series are all covered. If want to fix this defect, must move chart:percentage attribute from the style which applied to <chart:plot-area> to the style which applied to <chart:series>. However, for this attribute, ODF 1.2 says "This attribute is evaluated for chart styles that are applied to a <chart:plot-area> element.". So my requirement is conflict with the ODF standard. Then how can I fix this defect? It seems the only way is to change the standard and change the corresponding filter code. But I know change the standard is not easy...