微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

问题:如何将Chart XSLFChart集成到PowerPoint演示文稿中?

如何解决问题:如何将Chart XSLFChart集成到PowerPoint演示文稿中?

我使用Java生成PowerPoint演示文稿,下面是一些用于生成图表的编码。我在Powerpoint输出中看不到任何图表。 Powerpoint文件生成没有问题。只是图表丢失。可能是什么问题?

XSLFChart chart = ppt.createChart(slide);
    chart.setTitleText("Test!");
    chart.setTitleOverlay(false);
    
    // Series Text
    List<XDDFChartData> series = chart.getChartSeries();
    XDDFLineChartData linechart = (XDDFLineChartData) series.get(0);

    // Category
    List<String> listCategories = new ArrayList<>(3);
    listCategories.add("Test1");
    listCategories.add("Test2");
    listCategories.add("Test3");
    // Values
    List<Double> listValues = new ArrayList<>(3);
    listValues.add(10.00);
    listValues.add(20.00);
    listValues.add(30.00);

    String[] categories = listCategories.toArray(new String[listCategories.size()]);
    Double[] values = listValues.toArray(new Double[listValues.size()]);

    final int numOfPoints = categories.length;
    final String categoryDatarange = chart.formatRange(new CellRangeAddress(1,numOfPoints,0));
    final String valuesDatarange = chart.formatRange(new CellRangeAddress(1,1,1));
    final XDDFDataSource<?> categoriesData = XDDFDataSourcesFactory.fromArray(categories,categoryDatarange);
    final XDDFNumericalDataSource<? extends Number> valuesData = XDDFDataSourcesFactory.fromArray(values,valuesDatarange);

    XDDFLineChartData.Series firstSeries = (XDDFLineChartData.Series) linechart.getSeries().get(0);
    firstSeries.replaceData(categoriesData,valuesData);
    // firstSeries.setTitle("chartTitle",// chart.setSheetTitle("chartTitle",0));
    firstSeries.setMarkerSize((short) 70);
    firstSeries.setMarkerStyle(MarkerStyle.DASH);
    firstSeries.setShowleaderLines(true);
    firstSeries.setSmooth(true);
    // firstSeries.setShapeProperties(XDDFShapeProperties);

    chart.plot(linechart);
    
    Rectangle rect = new Rectangle(0,2000,2000);
    slide.addChart(chart,rect);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。