Feature Request: Add high-level XDDF support for Funnel Charts (Office 2016+)
- Dominant language
- Java
- Stars
- 2.3k
- Forks
- 844
- Avg merge
- 5h 52m
- Merged PRs (30d)
- 47
Description
Hello POI Team,
**What is the problem?**
Apache POI (tested up to 5.2.5) does not currently offer high-level XDDF support for creating Funnel Charts, a chart type introduced in Office 2016.
The existing ChartTypes enum does not include FUNNEL, and there is no XDDFChartData implementation (like XDDFunnelChartData) for it.
**What is the current workaround?**
The only way to generate a Funnel Chart is to drop down to the low-level XML classes (org.openxmlformats.schemas...). This involves:
1. Manually creating a CTFunnelChart instance in the CTPlotArea.
2. Building the CTFunnelSer (series) by hand.
3. Manually setting up the data sources (CTAxDataSource, CTNumDataSource).
4. Manually creating and linking the axes (CTCatAx, CTValAx).
This low-level approach is complex, error-prone, and not well-documented.
**What is the requested solution?**
We request that high-level support for Funnel Charts be added to the XDDF charting library, consistent with other chart types like Bar, Line, and Pie charts.
Ideally, the API would look something like this:
// 1. Add ChartTypes.FUNNEL
XDDFChartData data = chart.createData(ChartTypes.FUNNEL, categoryAxis, valueAxis);
// 2. Add a corresponding XDDFunnelChartData (or similar)
XDDFChartData.Series series = data.addSeries(categories, values);
series.setTitle("My Funnel", null);
// 3. Handle colors, data labels, etc., through the high-level API.
// (e.g., data.setVaryColors(true))
This enhancement would greatly simplify the creation of modern charts and make POI even more powerful.
Thank you!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the existing ChartTypes enum and XDDFChartData implementations for Bar, Line, and Pie charts to understand the high-level chart API. Review the cited low-level CTFunnelChart, CTFunnelSer, CTAxDataSource, CTNumDataSource, CTCatAx, and CTValAx classes. Done means Funnel Charts can be created through XDDF with series, axes, colors, and data-label support without requiring direct low-level XML construction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-visualization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100