在 PPTX 中创建柱状图 Java

在 PowerPoint 演示文稿中创建条形图允许开发人员自动化报告、数据可视化和演示文稿创建。凭借 Java 的强大功能,您可以轻松生成复杂的图表,包括在您的 PPTX 文件中生成条形图。在本博客中,我们将为您提供逐步说明,教您如何使用 Java 在 PPTX 中创建条形图。

为什么在演示幻灯片中创建条形图?

条形图对于以视觉方式呈现比较数据至关重要,使其成为报告、学术演示和商务会议的理想选择。使用Java在PowerPoint中自动创建条形图提供了几个好处:

  1. 时间效率:通过自动化流程,您可以快速生成多个图表,而无需手动干预。

  2. 定制:程序化创建允许您根据具体需求定制图表,包括颜色、标签和数据值。

  3. 一致性:确保多个演示文稿中图表视觉风格的统一性。

  4. 集成:在需要从数据库或API动态获取图表数据的场景中非常有用,使过程变得无缝。

将条形图添加到 PowerPoint 演示文稿 - Java API 安装

您可以通过配置 Conholdate.Total for Java 来以编程方式处理 PowerPoint 演示文稿。只需下载 JAR 文件或将以下 Maven 配置复制到您项目的 pom.xml 文件中:

<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.10</version>
<type>pom</type>
</dependency>

在 Java 中创建 PPTX 中的条形图

您可以通过以下步骤在 PPT 或 PPTX 演示文稿的任何幻灯片中创建条形图:

  • 初始化演示文稿:创建演示文稿对象以创建新的 PowerPoint 文件。

  • 访问幻灯片:第一张幻灯片是通过 getItem(0) 访问的。

  • 添加柱状图:使用 addChart 向幻灯片添加了一个分组柱状图。

  • 配置系列和类别:默认系列和类别被清除,并通过编程方式添加新的系列和类别。

  • 填充数据:数据点被添加到每个系列中,指定它们各自的类别和值。

  • 自定义系列外观:系列的颜色和填充经过定制,以便于更好的可视化。

  • 保存文件:演示文稿已保存为包含柱状图的 .pptx 文件。

以下代码片段显示了如何在 Java 的 PPTX 演示文稿中创建条形图:

// 实例化表示 PPTX 文件的 Presentation 类。 
com.aspose.slides.Presentation pres = new com.aspose.slides.Presentation();
// 通过调用 getItem 方法访问第一张幻灯片。 
com.aspose.slides.ISlide sld = pres.getSlides().get_Item(0);
// 添加一个带有默认数据的条形图,方法是调用 addChart 方法。 
com.aspose.slides.IChart chart = sld.getShapes().addChart(com.aspose.slides.ChartType.ClusteredColumn, 0, 0, 500, 500);
// 设置图表标题的自定义大小和位置。
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(com.aspose.slides.NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// 将第一系列设置为显示值。
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// 设置图表数据表的索引
int defaultWorksheetIndex = 0;
// 通过调用 getChartDataWorkbook 方法获取图表数据工作表。 
com.aspose.slides.IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// 删除默认生成的系列和类别
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
int s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();
// 调用 add 方法以添加新系列。 
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType());
// 添加新类别
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
// 取第一个图表系列
com.aspose.slides.IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// 现在通过调用 addDataPointForBarSeries 方法来填充系列数据。 
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// 调用 setFillType 方法来设置系列的填充颜色。 
series.getFormat().getFill().setFillType(com.aspose.slides.FillType.Solid);
// 选择第二个图表系列
series = chart.getChartData().getSeries().get_Item(1);
// 现在填充系列数据
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
// 为系列设置填充颜色
series.getFormat().getFill().setFillType(com.aspose.slides.FillType.Solid);        
// 第一个标签将显示类别名称
com.aspose.slides.IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);
// 显示第三个标签的值
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");
// 该保存方法将保存带有条形图的演示文稿。 
pres.save(dataDir + "BarChart.pptx", com.aspose.slides.SaveFormat.Pptx);

免费评估许可证

您可以通过获取一个 免费临时许可证 来在没有任何评估限制的情况下评估API。

总结

通过遵循本指南,您可以轻松地在 PPTX 文件中使用 Java 创建动态和专业的条形图。自动化您的演示文稿创建过程,让您的数据以最小的努力变得视觉吸引。为您的 PowerPoint 演示文稿添加具有影响力的视觉元素从未如此简单。如果您想讨论任何不明确之处或关注的问题,请随时通过 forum 联系我们。

请参见