Java 添加、读取、删除Excel中的图表趋势线

article/2024/12/25 23:47:29

本文以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();}
}

趋势线删除结果:

 


http://chatgpt.dhexx.cn/article/MuHdJGal.shtml

相关文章

[Excel]如何取得趨勢線的參數值

為了讓同事在提供規格或是工程量測試算可以更加快速且正確&#xff0c;現在提供給他們的試算表基本上都是以函數置入&#xff0c;讓他們只要做簡單的數字輸入&#xff0c;即可得到想要的試算結果。 關於一些客戶提出的推估要求&#xff0c;常常會需要以現有數值結合擬合(fitti…

将excel多项式拟合公式放在python里重新计算结果完全不一样||excel线性拟合出来的公式明显不对||用excel拟合出多项式后python中带入值计算完全不对

问题如图&#xff1a; x[250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 1500 1550 1600 1650 1700 1750 1800 1850 1900 1950 2000 2050 2100 2150 2200] y[0.001395817 0.002332242 0.003154383 0.004303…

python 趋势线计算式_怎么将趋势线公式编辑成计算公式

首先录入数据. 以连续10年最大积雪深度和灌溉面积关系数据为例予以说明。录入结果见下图(图1)。 第二步&#xff0c;作散点图 如图2所示&#xff0c;选中数据(包括自变量和因变量)&#xff0c;点击“图表向导”图标&#xff1b;或者在“插入”菜单中打开“图表(H)(excel2007)图…

excel生成趋势线和函数关系式

本文以excel2007为例&#xff0c;演示下生成趋势线和函数关系式的步骤。 1. 选择一组数据&#xff1a; 2. 选中这组数据&#xff0c;插入图表&#xff1a; 新插入的图表如下所示&#xff1a; 3. 选中图表中所有的数据点&#xff08;数据点都要处于选中状态&#xff09;&#x…

Excel - 添加趋势线,显示趋势线公式 - 进行行业投融资曲线拟合

1.准备数据 本次是以人工智能行业为例,数据范围是2012年4月到2017年11月的,这是去年的时候采集的,这次就直接拿来用了,不影响曲线拟合的操作过程。但是想使用最新的数据的话,你也可以像我一样用火车头采集器采集最新的数据。 2.画折线图 就是一般的插入折线图,选中数据…

excel趋势线公式导出_如何用Excel进行预测分析?

【面试题】 一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。 请模拟出来,每天如果日新增6万用户,那么第30天,它的日活数会达到多少?请使用Excel进行分析。 【分析思路】 第1日(次日)留存用户数=第1日新增用户数*次日留存率 第2日活跃用户数=第…

springboot+flyway使用规范

引用flyway&#xff0c;在pom.xml中引入flyway <!--引入flyway的相关依赖5.2.1--><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>5.2.1</version></dependency> applicat…

Fly.js 学习

定义&#xff1a;一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。 浏览器支持 ✔ ✔ ✔ ✔ ✔ > 8 其它支持的平台 支付宝小程序 目前Fly.js支持的平台包括&#xff1a;Node.js…

Minifly程序框架

原文链接&#xff1a;https://blog.csdn.net/lalala12ll/article/details/101613060 minifly四轴部分由NRF51822和STM32F411两个芯片共同控制。NRF51822主要负责无线通信和电源管理&#xff1b;STM32F411则负责接受、发送各种数据&#xff0c;以及数据融合从而进行pid控制。 程…

BirdFly代码总结

BirdControl源码 const {ccclass, property} cc._decorator;ccclass export default class BirdControl extends cc.Component {property(cc.Label)label: cc.Label null;propertytext: string hello;// LIFE-CYCLE CALLBACKS:onLoad () {cc.director.getPhysicsManager().e…

Flyway 搭建

一、总体搭建介绍 1.1、Flyway简介 Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用&#xff0c;或者在Java应用程序中引入&#xff0c;用于管理我们的数据库版本。项目启动时&#xff0c;Flyway会自动运行&#xff0c;如果数据库中没有版本表&#xf…

Spring boot集成flyway

一、引入依赖&#xff08;以Maven项目为例&#xff09; spring boot项目首先引入数据库连接驱动依赖 <!-- jdbc 连接依赖&#xff0c;如果使用了mybatis或mybatis-plus&#xff0c;可直接引入对应mybatis依赖 --> <dependency><groupId>com.baomidou</gr…

开发flyray的初衷

开发flyray的初衷 一是为了自我学习&#xff0c;二是为了方便项目开发flyray项目介绍 使用SpringSpringMVCMybatisdubbox 开发的一套分布式基础框架&#xff0c;提供支付、对账、清结算、客户管理、营销活动、库存管理、搜索模块、rocketmq做统一的消息队列中心 使用技术 后…

flyway

需求&#xff1a; 目前环境太多套&#xff0c;而且每套的代码版本都是不一致的&#xff0c;再分支升级版本的时候每次都需要处理数据库的sql脚本&#xff0c;用人工核对容易出错或遗漏&#xff0c;为避免sql脚本混乱&#xff0c;需要统一的数据版本工具来进行维护。当前公司生…

springboot:集成flyway

文章目录 springboot&#xff1a;集成flyway一、简介二、Flyway工作流程三、配置文件使用Flyway添加相关配置创建脚本所在文件夹sql脚本命名规范启动测试 四、Flyway配置清单五、maven插件的使用migratebaselineclean&#xff08;慎用&#xff09;inforepairvalidateundo 六、f…

Firefly

Firefly(流萤): 中文对话式大语言模型在本文中&#xff0c;笔者将介绍关于Firefly&#xff08;流萤&#xff09;模型的工作&#xff0c;一个中文对话式大语言模型。https://mp.weixin.qq.com/s/TX7wj8IzD_EaMTvk0bjRtA一个支持中文的176B开源基础模型BLOOM&#xff1a;从数据源…

RIP 水平分割

水平分割 为了防止环路,RIP引入了水平分割机制,即从一个接口收到的路由更新,不会再从这个接口发出去,水平分割默认开启. 实验&#xff1a;RIP的水平分割 首先我们先查看R1和R3的路由表有什么异常

RIP水平分割实验

华为RIP水平分割实验 为了防止环路&#xff0c;BIP引入了水平分割机制&#xff0c;即从一个接口收到得路由更新&#xff0c;不会在从这个接口发出去&#xff0c;水平分割默认开启 实验拓补图如下 首先配置R1 system view [Huawei]sysname R1 [R1]int g0/0/0 [R1-Gigabi…

路由协议BGP之打破IBGP水平分割✍

为什么需要打破IBGP的水平分割&#xff1f; 因为IBGP水平分割&#xff0c;导致在一个AS内部若一台BGP路由器需要将通过其他AS学习到的路由传递给本地AS中的ibgp邻居时&#xff0c;需要和本地AS内部所有的BGP设备建立IBGP邻居关系&#xff1b;邻居关系数量成指数上升&#xff1…

解决IBGP的水平分割和BGP选路原则

解决IBGP的水平分割问题 IBGP水平分割&#xff1a;防止环路的产生 方法1&#xff1a;路由反射器(RR) 路由反射器可以反射所学习到的IBGP路由信息。 指定一台路由器称为 路由反射器&#xff08;RR&#xff09; 的时&#xff0c;必须在他的IBGP对等体关系中选择一个或者多个设备…