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

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实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线相关推荐

  1. JAVA实现在面板中添加图表_java-如何在不制作新图表的情况下将jzy3d图表添加到JFrame?...

    以下代码用于在JFrame中制作jzy3d图表: public class SurfaceViewerFrame extends IconFrame { public SurfaceViewerFra ...

  2. java xml添加节点_Java对XML节点的修改、添加、删除 –By Xstream框架

    在J2EE.Java项目中对xml操作是一项非常常见的事情,在我认识了XStream以后,才彻底明白XML模型对象的概念,使用XStream让我XML的设计不由自主更符合OO的风格.另外,除了在设计上 ...

  3. java 过滤器 过滤文件中的文件_Java 使用FileFilter过滤器对文件进行搜索

    FileFilter概述 java.io.FileFilter是一个接口,是File的过滤器. 该接口的对象可以传递给File类的listFiles(FileFilter filter)作为参数,Fi ...

  4. java筛选表格,java怎么获取excel中的数据_java筛选excel数据

    你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上? 主要用poi.jar 包.包含两jar就可以了:poi-3.16.jar.poi-oo ...

  5. java poi word 图表_Java操作Poi--word图表中颜色的设置

    在做java 动态增删图表中,如果将原来的标签数据删除了,在新增标签数据,发现颜色没设置,然后找不到对应的方法. 将word模板另外存word.xml格式,你会发现word模板其实是一大堆标签,你操作 ...

  6. java如何绘制图表_java绘制excel图表(jxcell)

    import com.jxcell.*; import java.awt.*; public class ChartFormatTest { public static void main(Strin ...

  7. java 在面板中加入标签_创建一个JTabbedPane面板,为每一个标签设置一个名称

    [java]代码库package three; //这段程序主要是创建一个JTabbedPane面板,为每一个标签设置一个名称 import javax.swing.*; import java.aw ...

  8. java图表标题_Java 创建Excel图表

    import com.spire.xls.*; import com.spire.xls.charts.ChartSerie; import com.spire.xls.charts.ChartSer ...

  9. java如何从缓存中读取数据_Java 缓存技术之 ehcache中读取出所有缓存名称列表数组...

    1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ...

最新文章

  1. CodeGen API分析
  2. 解题报告 poj 2109
  3. python 图片base64 编解码,转换成Opencv,PIL.Image图片格式
  4. 多层陶瓷电容器用处_典型陶瓷电容的用途和作用
  5. python上网行为分析_python实战练手项目---获取谷歌浏览器的历史记录,分析一个人的上网行为...
  6. Linux 安装 MySQL 数据库
  7. 携程签约日本爱知县 探索主题游促中日交流
  8. 高效的JavaScript.
  9. 01-python进阶-拾遗
  10. 遥感原理与应用总结——第五章:遥感图像几何处理
  11. c语言数据类型ppt,C语言基本数据类型.ppt
  12. 解决ubuntu16.04插耳机没有声音的问题
  13. 房租,社会教给年轻人的第一课
  14. SIM7600CE GNSS应用指南
  15. 生产计划:制定您的生产流程
  16. 自动驾驶下的伦理困境
  17. 小爱音箱怎么装app_小爱音箱app|小米AI音箱app(小米小爱app)下载 v1.2.11 安卓版 - 比克尔下载...
  18. linux对指定ip限速,使用tc对linux中某ip段限速
  19. 计算机技术在法学方面的应用,现代计算机技术为法学带来了什么-西安交通大学教师个人主页.PDF...
  20. ChinaSoft 论坛巡礼 | 群智化软件测试技术和方法

热门文章

  1. Android系统启动系列----init进程
  2. 三大纪律七项注意(Access数据库)
  3. 使用/proc/meminfo文件查看内存状态信息
  4. JSF 2.0/2.1 生命周期简介
  5. Android 短信解析
  6. 人生的12个经典领悟
  7. 青年报告_了解青年的情绪
  8. 如何确保您的Progressive Web App保持其Lighthouse审核分数
  9. orcale可视化建立用户_建立动态可视化的新方法
  10. java城市级联一次查询_我的城市没有任何设计活动,所以我自己组织了一次。...