当前位置: 代码网 > it编程>编程语言>Java > Java实现在PowerPoint中创建柱状图和折线图实现数据可视化

Java实现在PowerPoint中创建柱状图和折线图实现数据可视化

2025年11月26日 Java 我要评论
在瞬息万变的职场和学习环境中,高效的数据可视化是讲述数据故事、传递核心洞察的关键。无论是制作项目报告、市场分析还是学术演示,柱状图和折线图都是最常用且直观的图表类型。然而,手动在 powerpoint

在瞬息万变的职场和学习环境中,高效的数据可视化是讲述数据故事、传递核心洞察的关键。无论是制作项目报告、市场分析还是学术演示,柱状图和折线图都是最常用且直观的图表类型。然而,手动在 powerpoint 中创建和更新大量图表不仅耗时,还容易出错。本文将为您揭示如何利用 spire.presentation for java 库,轻松实现 powerpoint 中柱状图和折线图的自动化创建,彻底告别繁琐的手动操作!

spire.presentation for java 库介绍与安装

spire.presentation for java 是一个功能强大的 java api,专为创建、读取、编辑和转换 powerpoint 演示文稿而设计。它支持 ppt、pptx 等多种格式,提供了丰富的对象模型,让开发者能够以编程方式全面控制 powerpoint 文档的各个方面,包括幻灯片管理、形状操作、文本处理以及本文重点关注的图表创建与编辑。其优势在于无需安装 microsoft office 即可独立运行,极大地提升了自动化处理的灵活性和效率。

maven 依赖配置

在您的 pom.xml 文件中添加以下 maven 依赖,即可将 spire.presentation 库引入您的项目:

  <repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>e-iceblue</groupid>
        <artifactid>spire.presentation</artifactid>
        <version>10.11.4</version>
    </dependency>
</dependencies>

提示: 您可以访问 e-iceblue 官方网站获取最新版本的依赖信息或下载 jar 包手动添加到项目中。

如何在 powerpoint 中创建柱状图

柱状图是比较不同类别数据最常用的图表类型。通过 spire.presentation,您可以轻松地自动化创建和填充柱状图。

详细步骤

创建演示文稿对象: 实例化 presentation 类,代表一个新的 powerpoint 文档。

添加图表: 调用幻灯片对象的 getshapes().appendchart() 方法,指定图表类型为 charttype.column_clustered(簇状柱形图)或其他柱状图类型,并设置图表的位置和大小。

设置图表数据:

  • 通过 chart.getchartdata() 获取图表数据对象。
  • 使用 chart.getchartdata().get(row, column).settext() 设置图表的数据标签,例如类别名称和系列名称。
  • 使用 chart.getcategories().setcategorylabels() 设置横坐标(类别)标签。
  • 使用 chart.getseries().setserieslabel() 设置图例(系列)标签。
  • 使用 chart.getseries().get(index).setvalues() 设置每个系列的数据值。

设置图表属性:

  • 设置图表标题:chart.getcharttitle().gettextproperties().settext()。
  • 设置轴标签等。

保存演示文稿: 调用 presentation.savetofile() 方法将 ppt 文档保存到指定路径。

java 代码示例 (柱状图)

import com.spire.presentation.*;
import com.spire.pdf.tables.table.*;
import com.spire.presentation.charts.*;
import com.spire.presentation.drawing.fillformattype;
import java.awt.geom.rectangle2d;
import java.lang.object;


public class createchart {
    public static void main(string[] args) throws exception {

        //实例化一个presentation对象
        presentation presentation = new presentation();

        //插入柱形图

        rectangle2d.double rect = new rectangle2d.double(40, 100, 550, 320);
        ichart chart = null;
        chart = presentation.getslides().get(0).getshapes().appendchart(charttype.column_clustered, rect);

        //添加表名
        chart.getcharttitle().gettextproperties().settext("销售报表");
        chart.getcharttitle().gettextproperties().iscentered(true);
        chart.getcharttitle().setheight(30);
        chart.hastitle(true);

        //创建后台数据表
        datatable datatable = new datatable();
        datatable.getcolumns().add(new datacolumn("销售额", datatypes.datatable_string));
        datatable.getcolumns().add(new datacolumn("谷物", datatypes.datatable_int));
        datatable.getcolumns().add(new datacolumn("粮油", datatypes.datatable_int));
        datatable.getcolumns().add(new datacolumn("百货", datatypes.datatable_int));
        datarow row1 = datatable.newrow();
        row1.setstring("销售额", "门店1");
        row1.setint("谷物", 250);
        row1.setint("粮油", 150);
        row1.setint("百货", 99);
        datarow row2 = datatable.newrow();
        row2.setstring("销售额", "门店2");
        row2.setint("谷物", 270);
        row2.setint("粮油", 150);
        row2.setint("百货", 99);
        datarow row3 = datatable.newrow();
        row3.setstring("销售额", "门店3");
        row3.setint("谷物", 310);
        row3.setint("粮油", 120);
        row3.setint("百货", 49);
        datarow row4 = datatable.newrow();
        row4.setstring("销售额", "门店4");
        row4.setint("谷物", 330);
        row4.setint("粮油", 120);
        row4.setint("百货", 49);
        datarow row5 = datatable.newrow();
        row5.setstring("销售额", "门店5");
        row5.setint("谷物", 360);
        row5.setint("粮油", 150);
        row5.setint("百货", 141);
        datarow row6 = datatable.newrow();
        row6.setstring("销售额", "门店6");
        row6.setint("谷物", 380);
        row6.setint("粮油", 150);
        row6.setint("百货", 135);
        datatable.getrows().add(row1);
        datatable.getrows().add(row2);
        datatable.getrows().add(row3);
        datatable.getrows().add(row4);
        datatable.getrows().add(row5);
        datatable.getrows().add(row6);

        //将数据写入图表
        for (int c = 0; c < datatable.getcolumns().size(); c++) {
            chart.getchartdata().get(0, c).settext(datatable.getcolumns().get(c).getcolumnname());
        }
        for (int r = 0; r < datatable.getrows().size(); r++) {
            object[] datas = datatable.getrows().get(r).getarraylist();
            for (int c = 0; c < datas.length; c++) {
                chart.getchartdata().get(r + 1, c).setvalue(datas[c]);

            }
        }

        //设置系列标签
        chart.getseries().setserieslabel(chart.getchartdata().get("b1", "d1"));

        //设置类别标签
        chart.getcategories().setcategorylabels(chart.getchartdata().get("a2", "a7"));

        //为各个系列赋值
        chart.getseries().get(0).setvalues(chart.getchartdata().get("b2", "b7"));
        chart.getseries().get(1).setvalues(chart.getchartdata().get("c2", "c7"));
        chart.getseries().get(2).setvalues(chart.getchartdata().get("d2", "d7"));
        chart.getseries().get(2).getfill().setfilltype(fillformattype.solid);
        chart.getseries().get(2).getfill().getsolidcolor().setknowncolor(knowncolors.light_blue);

        //设置系列重叠
        chart.setoverlap(-50);

        //设置类别间距
        chart.setgapdepth(200);

        //保存文档
        presentation.savetofile("output/createchart.pptx", fileformat.pptx_2010);

    }
}

如何在 powerpoint 中创建折线图

折线图常用于展示数据随时间变化的趋势。创建折线图的步骤与柱状图类似,只需调整图表类型和数据绑定方式。

详细步骤

创建演示文稿对象: 实例化 presentation 类。

添加图表: 调用幻灯片对象的 getshapes().appendchart() 方法,指定图表类型为 charttype.line,并设置图表的位置和大小。

设置图表数据:

  • 设置数据表头、类别标签和系列标签。
  • 设置每个系列的数据值。

设置图表属性:设置图表标题、图例等。

保存演示文稿: 调用 presentation.savetofile() 方法保存 ppt 文档。

java 代码示例 (折线图)

import com.spire.presentation.fileformat;
import com.spire.presentation.presentation;
import com.spire.presentation.slidesizetype;
import com.spire.presentation.charts.chartlegendpositiontype;
import com.spire.presentation.charts.charttype;
import com.spire.presentation.charts.ichart;

import java.awt.geom.rectangle2d;

public class linechart {
    public static void main(string[] args) throws exception {

        //创建presentation对象
        presentation presentation = new presentation();
        presentation.getslidesize().settype(slidesizetype.screen_16_x_9);

        //插入折线图
        rectangle2d.double rect = new   rectangle2d.double(100, 50, 600, 430);
        ichart chart = presentation.getslides().get(0).getshapes().appendchart(charttype.line, rect);

        //设置图表标题
        chart.getcharttitle().gettextproperties().settext("产品月销量趋势");
        chart.getcharttitle().gettextproperties().iscentered(true);
        chart.getcharttitle().setheight(30);
        chart.hastitle(true);

        //设置轴标题
        chart.getprimarycategoryaxis().gettitle().gettextproperties().settext("月份");
        chart.getprimarycategoryaxis().hastitle(true);
        chart.getprimaryvalueaxis().gettitle().gettextproperties().settext("销量");
        chart.getprimaryvalueaxis().hastitle(true);

        //写入图表数据
        chart.getchartdata().get(0,0).settext("月份");
        chart.getchartdata().get(1,0).settext("一月");
        chart.getchartdata().get(2,0).settext("二月");
        chart.getchartdata().get(3,0).settext("三月");
        chart.getchartdata().get(4,0).settext("四月");
        chart.getchartdata().get(5,0).settext("五月");
        chart.getchartdata().get(6,0).settext("六月");

        chart.getchartdata().get(0,1).settext("台式机");
        chart.getchartdata().get(1,1).setnumbervalue(80);
        chart.getchartdata().get(2,1).setnumbervalue(45);
        chart.getchartdata().get(3,1).setnumbervalue(25);
        chart.getchartdata().get(4,1).setnumbervalue(20);
        chart.getchartdata().get(5,1).setnumbervalue(10);
        chart.getchartdata().get(6,1).setnumbervalue(5);

        chart.getchartdata().get(0,2).settext("笔记本");
        chart.getchartdata().get(1,2).setnumbervalue(30);
        chart.getchartdata().get(2,2).setnumbervalue(25);
        chart.getchartdata().get(3,2).setnumbervalue(35);
        chart.getchartdata().get(4,2).setnumbervalue(50);
        chart.getchartdata().get(5,2).setnumbervalue(45);
        chart.getchartdata().get(6,2).setnumbervalue(55);

        chart.getchartdata().get(0,3).settext("平板");
        chart.getchartdata().get(1,3).setnumbervalue(10);
        chart.getchartdata().get(2,3).setnumbervalue(15);
        chart.getchartdata().get(3,3).setnumbervalue(20);
        chart.getchartdata().get(4,3).setnumbervalue(35);
        chart.getchartdata().get(5,3).setnumbervalue(60);
        chart.getchartdata().get(6,3).setnumbervalue(95);

        //设置系列标签
        chart.getseries().setserieslabel(chart.getchartdata().get("b1", "d1"));

        //设置分类标签
        chart.getcategories().setcategorylabels(chart.getchartdata().get("a2", "a7"));

        //设置系列数据区域
        chart.getseries().get(0).setvalues(chart.getchartdata().get("b2", "b7"));
        chart.getseries().get(1).setvalues(chart.getchartdata().get("c2", "c7"));
        chart.getseries().get(2).setvalues(chart.getchartdata().get("d2", "d7"));

        //在数据标签中显示数据
        chart.getseries().get(0).getdatalabels().setlabelvaluevisible(true);
        chart.getseries().get(1).getdatalabels().setlabelvaluevisible(true);
        chart.getseries().get(2).getdatalabels().setlabelvaluevisible(true);

        //设置图例位置
        chart.getchartlegend().setposition(chartlegendpositiontype.top);

        //保存文档
        presentation.savetofile("linechart.pptx", fileformat.pptx_2013);
    }
}

总结

通过本文的详细教程,您已经掌握了如何利用 spire.presentation for java 库在 powerpoint 中自动化创建柱状图和折线图。这个强大的工具能够将您从重复性的手动操作中解放出来,无论是生成每日报告、每月总结还是复杂的年度演示,都能显著提高工作效率,确保数据展示的准确性和一致性。spire.presentation for java 不仅限于图表创建,其在ppt自动化处理方面的潜力巨大,鼓励您进一步探索它在更复杂数据呈现场景中的应用,让数据可视化变得前所未有的简单和高效!

以上就是java实现在powerpoint中创建柱状图和折线图实现数据可视化的详细内容,更多关于java ppt创建柱状图和折线图的资料请关注代码网其它相关文章!

(0)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com