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下载即可.但是有一点不同,就是要加入图片, ...
随机推荐
- Python之for循环和列表
for循环: 有限循环 基本语法: for 变量 in 可迭代对象: 循环体 也可使用break,continue,for else list列表初识: 列表可放任意数据类型:[int,str,boo ...
- springboot入门系列(三):SpringBoot教程之RabbitMQ示例
SpringBoot教程之RabbitMQ示例 SpringBoot框架已经提供了RabbitMQ的使用jar包,开发人员在使用RabbitMQ的时候只需要引用jar包简单的配置一下就可以使用Rabb ...
- hystrix线程池隔离的原理与验证
引子 幸福很简单: 今天项目半年规划被通过,终于可以早点下班.先坐公交,全程开着灯,买了了几天的书竟然有时间看了.半小时后,公交到站,换乘大巴车.车还等着上人的功夫,有昏暗的灯光,可以继续看会儿书.过 ...
- F. Make It Connected 解析(思維、MST)
Codeforce 1095 F. Make It Connected 解析(思維.MST) 今天我們來看看CF1095F 題目連結 題目 給你\(n\)個點,每個點\(u\)還有一個值\(a[u]\ ...
- python装饰器是什么?
装饰器是python中的高阶语法,装饰器是通过类或者函数来实现的,通常使用@符号来表示一个装饰器,作用是用来扩展某个函数或者类的功能
- CodeForces 1025G Company Acquisitions
题意 描述有点麻烦,就不写了. \(\texttt{Data Range:}1\leq n\leq 500\) 题解 势能函数这个东西好神啊-- 这个题目用常规的 DP 好像做不出来,所以我们可以考虑 ...
- STM32入门系列-STM32时钟系统,时钟使能配置函数
之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...
- Js模块化开发的理解
Js模块化开发的理解 模块化是一个语言发展的必经之路,其能够帮助开发者拆分和组织代码,随着前端技术的发展,前端编写的代码量也越来越大,就需要对代码有很好的管理,而模块化能够帮助开发者解决命名冲突.管理 ...
- Codeforces Round #677 (Div. 3) 题解
Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...
- Python Tkinter小实例——模拟掷骰子
什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...