JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

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

Jar文件获取及导入:

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

66fbd18770b7c835e6f8def0ba41cfc0.png

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

}

}

创建效果:

0506ff130c5409caad4a85a2db236ef2.png

【示例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);

}

}

添加效果:

eec34db5c9c24879fe3cb918753ae9cf.png

(本文完)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea设置中文界面_《英雄联盟手游》设置界面中文翻译图分享 外服汉化界面一览...

导读 英雄联盟手游目前以及正式上线了&#xff0c;不过现在的话是没有中文版的&#xff0c;只有外服&#xff0c;所有很多地方是看不懂的&#xff0c;也不明白的&#xff0c;这样的话就需要翻译了&#xff0c;具体要怎么设置会比较&#xff0c;相关的步骤是什么呢&#xff1f;下…

安卓10不支持qmc解码_官宣:安卓10已发布!21款手机已适配,小米华为率先支持...

随着今天凌晨谷歌 I/O 大会的召开&#xff0c;Android Q 也就是安卓10正式官宣&#xff0c;新版的安卓10加入了诸多新手势&#xff0c;从 Home 键设计上看&#xff0c;安卓10 的新版手势很大程度上有疑似借鉴 iOS 的手势&#xff0c;底部一个长条&#xff0c;作为 Home 用来返回…

linux系统编程之进程(七):system()函数使用【转】

本文转载自&#xff1a;http://www.cnblogs.com/mickole/p/3187974.html 一&#xff0c;system()理解 功能&#xff1a;system()函数调用“/bin/sh -c command”执行特定的命令&#xff0c;阻塞当前进程直到command命令执行完毕 原型&#xff1a; int system(const char *comma…

汉王云名片识别(SM)组件开发详解

大家好&#xff0c;最近在DeviceOne平台上做了一个汉王云名片识别的功能组件。下面把我开发过程给大家做一个分享&#xff0c;希望可以帮助到大家。 下面我把我的思路给大家讲解一下。1.找到我要集成的sdk&#xff0c;也就是汉王云名片的sdk下载&#xff08;android和ios&#…

[App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论

您可以查看 App 的总评分或单个顾客评论。如有必要&#xff0c;您可以针对某条评论报告问题。 【注】顾客可以为您的 iOS 和 macOS App 评分并撰写评论&#xff0c;但只能为 Apple TVOS App 评分。 必要职能&#xff1a;“帐户持有人”职能、“管理”职能、“App 管理”职能、“…

visio studio json工具_《产品经理入门指南》彩蛋2:别技淫原型图!你的Visio和Balsamiq Mockup入门了吗?...

温馨提示&#xff1a;如果你有关于产品经理方面的任何问题&#xff0c;欢迎关注我的微信公众号与我互动。最新的免费系统的产品经理课程《老司机带你做产品》已经推出&#xff0c;请关注微信公众号&#xff1a;iamliuwenzhi很多产品新人刚开始工作时&#xff0c;喜欢一拿到需求…

mysql牵引例子_MySQL学习06(事务和索引)

事务概述什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则原子性(Atomic)整个事务中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#…

android操作系统 真的吗_旋挖机培训学校真的能学会吗,旋挖钻机到底有哪些操作系统...

旋挖机培训学校真的能学会吗添加微&#xff1a;yywyyc 旋挖钻机到底有哪些操作系统【前言】很多使用旋挖钻机或者想要了解旋挖钻机的工程公司可能不是特别了解旋挖钻机本身的系统以及部件&#xff0c;本篇文章针对旋挖钻机的操作系统来给大家介绍一下&#xff0c;让大家了…

WebAPI 2参数绑定方法

简单类型参数 Example 1: Sending a simple parameter in the Url [RoutePrefix("api/values")] public class ValuesController : ApiController {// http://localhost:49407/api/values/example1?id2[Route("example1")][HttpGet]public string Get(int…

java怎么引入html文件路径_如何在public_html中读取文件但在域外?使用相对路径...

我正在尝试从我的(附加组件)域目录之外的目录中读取文件 . 这是我的目录结构&#xff1a;public_html /domain /file_read.phpfile_write.phpsensitive /file.dat虽然我能够使用“../sensitive/file.dat”写入敏感&#xff0c;但我无法使用相同的方法进行读取 . 有什么想法吗&a…

csv文件怎么转成excel_Java读写excel,excel转成json写入磁盘文件

pom读写excel主要的dependency<dependency> <groupId>org.apache.poigroupId> <artifactId>poiartifactId> <version>3.16version> dependency> <dependency> <groupId>org.apache.poigroupId> …

前端做CRM管理系统是做什么_代办行业的CRM客户关系管理系统应该是什么样子的?...

随着互联网的深耕细化&#xff0c;很多企业也在不断优化自己的办公方式&#xff0c;以优化企业的办公流程&#xff0c;提高企业的办事效率。因此实现办公自动化&#xff0c;或者说实现数字化办公就需要逐渐提上日程。今天给大家讲讲可以帮助代办行业实现办公自动化的产品&#…

蓝牙 sig base uuid_蓝牙模块采用陶瓷天线和PCB天线的区别

一、陶瓷天线陶瓷天线是一种适合于蓝牙设备使用的小型化天线,又分为块状陶瓷天线和多层陶瓷天线。陶瓷天线占用空间很小、性能比较好&#xff1b; 带宽窄&#xff0c;比较难做到多频段&#xff1b;有效提高主板的整合度&#xff0c;并可降低天线对ID的限制&#xff1b;需要在主…

app启动页自动跳转源码_关于移动端App启动页的策划方案

App启动页是指app在启东时需要加载必要的运行环境和配置&#xff0c;在这个过程中提示用户等待的一个过渡页面。在产品经理眼里启动页是app给予用户重要的第一印象&#xff1b;也是App最重要的黄金页面之一&#xff0c;所有用户100%都会看到的页面。启动页适合用来做以下几个事…

java 如何排查内存溢出_java 内存溢出排查

测试代码&#xff0c;如下示例&#xff1a;import java.util.ArrayList;import java.util.List;/*** Description 测试内存溢出, 启动时设置参数&#xff0c;最大堆内存为1m, 内存溢出时dump出内存文件 -Xmx1m -XX:HeapDumpOutOfMemoryError* Author luzy* Date 2018/10/5 11:0…

《企业级ios应用开发实战》一2.2 iOS框架介绍

2.2 iOS框架介绍 iOS衍生自Mac OS X的成熟内核&#xff0c;但iOS操作系统更紧凑和高效&#xff0c;支持iPhone和iPod Touch的硬件。iOS继承了Mac OS X的风格&#xff0c;包括&#xff1a;统一的OS X 内核&#xff0c;针对网络的BSD套接字&#xff0c;以及Objective-C和C/C编译器…

python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样

毕节进出口车牌识别系统怎么样 gzheu8il毕节进出口车牌识别系统怎么样 系统拓扑图如下&#xff1a;该系统以社区中心机房为枢纽&#xff0c;有机的将智慧家居住户、社区数字化服务、物业数字化管理、社区智能化管理结合起来&#xff0c;真正的实现&#xff1a;住户与住户之间的…

java try catch陷阱_Java异常处理最佳实践及陷阱防范

原标题&#xff1a;Java异常处理最佳实践及陷阱防范出自《深夜里的程序猿》作者&#xff1a;wangzenghuang前言不管在我们的工作还是生活中&#xff0c;总会出现各种“错误”&#xff0c;各种突发的“异常”。无论我们做了多少准备&#xff0c;多少测试&#xff0c;这些异常总会…

vivo手机怎么投屏到电脑_投屏软件电脑加手机投屏软件投屏

优秀的资源工具可以让你事半功倍&#xff01;本号文内资源已经手工转存整理&#xff0c;安全起见&#xff0c;回复 “领取资源” 按提示自助领取。今天分享的是一家公司出品的投屏神器。为避免被举报这里就不说出软件名了。它可以在局域网内把手机的屏幕投到电脑上&#xff0c;…

How to upload windows Sysprep Files to VMware vCenter Server Appliance 6.5(vC

vCSA5.5中可以登录到端口5480中去上传&#xff0c;vCSA 6.0以后就不支持了。但是可以通过Enable “Pi Shell”来做。 首先确保vCSA的ssh可用&#xff1a; 0. Make sure that SSH in enabled on the VCSA. Home > Administration > System configuration (under Deploymen…