Java 添加、读取、删除Excel中的图表趋势线
本文以Java示例介绍如何在Excel中添加趋势线,以及读取趋势线公式。通过文中的方法可支持添加6种不同类型的趋势线,包括Linear、Exponential、Logarithmic、Moving Average、Polynomial、Power等;读取趋势线时可读取趋势线类型、名称、公式等。
代码程序环境要求:
- Spire.xls.jar(这里用免费版的就可以了)
- Jdk 1.8.0 (jdk版本要求1.6.0及以上就可以)
- IDEA
其中,jard导入可参考如下两种方法(任选其一):
1. 下载免费版jar包Free Spire.XLS for Java,手动导入jar到Java程序。Jar文件在解压文件中的lib文件夹下获取。
2. Maven程序中,通过配置pom.xml文件,指定maven仓库路径及spire.xls.free的依赖(同时注意版本号是否正确),如下:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>
完成配置后,导入jar到程序。
Eclipse中导入jar步骤略有不同,具体可参考教程。
jar导入效果:

Java 代码示例
1. 添加趋势线
import com.spire.xls.*;
import com.spire.xls.core.IChartTrendLine; import java.awt.*; public class AddTrendlineToChart {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx"); //获取第一个工作表中的第一个图表
Chart chart0 = wb.getWorksheets().get(0).getCharts().get(0); //给图表的第一个数据系列添加趋势线(支持Linear、Exponential、Logarithmic、Moving_Average、Polynomial、Power等6种类型)
IChartTrendLine trendLine0 = chart0.getSeries().get(0).getTrendLines().add(TrendLineType.Linear);
trendLine0.setName("Linear(Series1)");//趋势线的名称
trendLine0.getBorder().setPattern(ChartLinePatternType.DashDot);//趋势线的线条类型
trendLine0.getBorder().setColor(new Color(255,69,0));//趋势线的线条颜色
trendLine0.setForward(0.5);//趋势线向前和向后延伸的单位数
trendLine0.setBackward(0.5);
trendLine0.setIntercept(5);//趋势线的截距
trendLine0.setDisplayEquation(true);//显示公式
trendLine0.setDisplayRSquared(true);//显示R平方值 //保存文档
wb.saveToFile("AddTrendline.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
趋势线添加效果:

2. 读取趋势线
import com.spire.xls.*;
import com.spire.xls.core.IChartTrendLine; public class ReadTrendline {
public static void main(String[] args) {
//加载Excel文档
Workbook workbook = new Workbook();
workbook.loadFromFile("AddTrendline.xlsx"); //获取第一个工作表中的第一个图表
Chart chart = workbook.getWorksheets().get(0).getCharts().get(0); //获取图表的第一个数据系列的趋势线
IChartTrendLine trendLine = chart.getSeries().get(0).getTrendLines().get(0);
String type = trendLine.getType().toString();
String name = trendLine.getName();
String equation = trendLine.getFormula();
System.out.println("趋势线类型: "+ type + "\n"
+ "趋势线名称:" + name + "\n"
+ "趋势线公式:" + equation);
}
}
趋势线读取结果:

3. 删除图表中的趋势线
import com.spire.xls.*;
public class RemoveTrendline {
public static void main(String[] args) {
//加载Excel文档
Workbook workbook = new Workbook();
workbook.loadFromFile("AddTrendline.xlsx");
//获取第一个工作表中的第一个图表
Chart chart = workbook.getWorksheets().get(0).getCharts().get(0);
//删除图表中的趋势线
chart.getSeries().get(0).getTrendLines().removeAt(0);
//保存文档
workbook.saveToFile("result.xlsx",FileFormat.Version2013);
workbook.dispose();
}
}
趋势线删除结果:

Java 添加、读取、删除Excel中的图表趋势线的更多相关文章
- Java 添加、删除Excel表单控件
通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...
- 如何使用VSTO自动将Excel中的图表复制到Word
如何使用VSTO自动将Excel中的图表复制到Word 原文地址:https://code.msdn.microsoft.com/How-to-copy-Chart-in-Excel-a29f9029 ...
- Java 添加数字签名到Excel以及检测、删除签名
Excel中可添加数字签名以供文档所有者申明文档的所有权或有效性.文本以Java代码示例介绍如何在Excel文档中对数字签名功能进行相关操作,包括如何添加签名到Excel.检测Excel文档是否已签名 ...
- Java 添加、删除、移动、隐藏/显示Excel工作表
本文内容将介绍通过Java程序如何添加.删除.移动工作表,以及设置工作表隐藏.显示等操作.文中使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过官网下载包 ...
- Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...
- Java 添加、删除、格式化Word中的图片
本文介绍使用Spire.Cloud.SDK for Java提供的ImagesApi接口来操作Word中的图片.具体可通过addImage()方法添加图片.deleteImage()方法删除图片.up ...
- JDBC批处理读取指定Excel中数据到Mysql关系型数据库
这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...
- java后台读取/解析 excel表格
需求描述 前台需要上传excel表格,提交到后台,后台解析并返回给前台,展示在前台页面上! 前台部分代码与界面 <th style="padding: 7px 1px;width:15 ...
- java POI实现向Excel中插入图片
做Web开发免不了要与Excel打交道.今天老大给我一个任务-导出Excel.开始想的还是蛮简单的,无非就是查找,构建Excel,response下载即可.但是有一点不同,就是要加入图片, ...
随机推荐
- css中伪元素before或after中content的特殊用法attr【转】
[原文]https://segmentfault.com/a/1190000002750033 CSS中主要的伪元素有四个:before/after/first-letter/first-line,在 ...
- 从Linux源码看Socket(TCP)的listen及连接队列
从Linux源码看Socket(TCP)的listen及连接队列 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看 ...
- 笔记之Utility.DataAccess
挤出时间看了一些代码,做一些笔记,备忘!!! 现在ORM随处可见,为什么不要已有的ORM而要手动写SQL呢?这肯定是有因为滴,存在必合理嘛! 自认为关于性能.维护.Maybe还有其他的,欢迎大家拍砖! ...
- Vue中键盘事件
Vue中监听 键盘事件及修饰符 键盘事件: keyCode 实际值 48到57 0 - 9 65到90 a - z ( A-Z ) 112到135 F1 - F ...
- 没事学些KVM(三)虚拟机基础管理
创建完成虚拟机后,需要对虚拟机进行基础管理学习 virsh list #查看虚拟机列表 改命令只能查看正在运行或挂起的虚拟机 如果需要查看所有的虚拟机需要添加--all 参数 virsh start ...
- vue项目中mockjs的使用
mock.js是一个库,源码托管:https://github.com/nuysoft/Mock github上的原话:Mock.js是一个模拟数据生成器,可帮助前端开发和原型与后端进度分开,并减少某 ...
- (CVPR 2019)The better version of SRMD
CVPR2019的文章,解决SRMD的诸多问题, 并进行模拟实验. 进行双三次差值(bicubic)===>对应matlab imresize() %% read images im = {}; ...
- 并发编程——多线程计数的更优解:LongAdder原理分析
前言 最近在学习ConcurrentHashMap的源码,发现它采用了一种比较独特的方式对map中的元素数量进行统计,自然是要好好研究一下其原理思想,同时也能更好地理解ConcurrentHashMa ...
- 走在深夜的小码农 Fifth Day
Css3 Fifth Day writer:late at night codepeasant 学习大纲: 一.css三大特性 1.层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠) ...
- Luogu P5087 数学
题意 给定一个长度为 \(n\) 的序列 \(a_i\),求出在这个序列中所有选出 \(k\) 个元素方案中元素的乘积之和. \(\texttt{Data Range:}1\leq n\leq 10^ ...