美文网首页Java
Java 创建PowerPoint图表并为其添加趋势线

Java 创建PowerPoint图表并为其添加趋势线

作者: Tina_Tang | 来源:发表于2020-04-23 11:04 被阅读0次

图表,是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线。趋势线的运用能够显示数据的变化趋势,同时能够帮助预测数据的未来值。

使用工具:Free Spire.Presentation for Java(免费版)

Jar文件获取及导入:

方法1通过官网下载获取jar包。解压后将lib文件夹下的Spire.Presentation.jar文件导入Java程序。(如下图)

方法2通过maven仓库安装导入。具体安装教程参见此网页

【示例1】创建图表

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 AddChart {

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);

}

}

创建效果:

【示例2】为图表添加趋势线

import com.spire.presentation.FileFormat;

import com.spire.presentation.ISlide;

import com.spire.presentation.Presentation;

import com.spire.presentation.charts.IChart;

import com.spire.presentation.charts.ITrendlines;

import com.spire.presentation.charts.TrendlineSimpleType;

public class AddTrendline {

public static void main(String[] args)throws Exception {

//创建Presentation实例

Presentation ppt =new Presentation();

//加载PowerPoint文档

ppt.loadFromFile("C:\\Users\\Test1\\Desktop\\CreateChart.pptx");

//获取第一张幻灯片

ISlide slide = ppt.getSlides().get(0);

//获取幻灯片上的图表

IChart chart = (IChart)slide.getShapes().get(0);

//给图表的第一个数据系列添加线性趋势线

ITrendlines trendLine = chart.getSeries().get(0).addTrendLine(TrendlineSimpleType.LINEAR);

//不显示公式

//trendLine.setdisplayEquation(false);

//不显示R平方值

//trendLine.setdisplayRSquaredValue(false);

//保存结果文档

ppt.saveToFile("output/AddTrendline.pptx", FileFormat.PPTX_2013);

}

}

添加效果:

(本文完)

相关文章

  • Java 创建PowerPoint图表并为其添加趋势线

    图表,是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。...

  • 用PPT制作生日贺卡

    步骤一启动PowerPoint,新建空演示文稿,选择幻灯片版式→内容版式→空白。并为幻灯片添加背景颜色(选择“格式...

  • 设计模式

    1工厂模式 特点: 通过 new Object() 来创建一个对象实例,并为其添加属性和方法并返回 优点: 工厂类...

  • ali F2(移动端数据展示) 入门

    F2 安装 基本使用 Chart 创建图表实例 Chart.source 添加数据 声明图表类型 图表类型poin...

  • 对Excel图表生成参考线方便比较。例如在成绩表中添加横线80或

    对Excel的图表一键添加参考线,方便比较。例如在成绩图表中添加横线80或60,可以一眼看出谁的成绩在参考线之上或...

  • Java 添加页脚到PowerPoint文档

    前言 在制作PowerPoint幻灯片时,可能会遇到需要将页码、时间、公司名称等具有标志性内容添加到幻灯片的情况。...

  • css伪元素的实用技巧

    1.定义 伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before :after来...

  • python添加趋势线

    前两天做半导体激光泵浦实验,记录了一些数据,看起来像是直线,想用python拟合一下,翻看了帮助的文档,写了一些代...

  • Java 创建Excel图表

    在Excel文档中,图表是指将工作表中的数据用图形的方式表示出来。它不仅能够反映数据间的某种相对关系,以此来...

  • 2020-08-19

    Zygote进程: 1、创建AppRuntime,执行其start方法,启动Zygote进程。。2、创建JVM并为...

网友评论

    本文标题:Java 创建PowerPoint图表并为其添加趋势线

    本文链接:https://www.haomeiwen.com/subject/ixsoihtx.html