Java实现添加,读取和删除Excel图片的方法详解
作者:E-iceblue 发布时间:2023-11-27 06:29:33
标签:Java,添加,读取,删除,Excel,图片
介绍
本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小、位置、旋转、超链接、可选文本等,以及如何读取、删除excel表格中已有的图片。
工具:Free Spire.XLS for Java (免费版)
注:可通过官网下载包,并解压将lib文件夹下的jar文件导入java程序;或者通过maven仓库下载导入。
Jar导入效果:
Java 代码示例
示例1添加图片
import com.spire.xls.*;
public class AddImage {
public static void main(String[] args) {
//加载文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//获取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//添加图片
ExcelPicture picture = sheet.getPictures().add(7,2,"tp.png");
picture.setHeight(270);//设置图片高度
picture.setWidth(550);//设置图片宽度
picture.setRotation(20);//设置图片旋转角度
picture.setAlternativeText("Picture1");//设置图片可选文本
picture.setHyperLink("http://www.baidu.com",true);//添加超链接到图片
//保存文档
wb.saveToFile("AddImage.xlsx", ExcelVersion.Version2010);
wb.dispose();
}
}
图片添加效果:
示例2读取图片
import com.spire.xls.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ExtractImage {
public static void main(String[] args) throws IOException {
//加载文档
Workbook wb = new Workbook();
wb.loadFromFile("AddImage.xlsx");
//获取第一张工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取工作表中第一张图片并保存到指定路径
ExcelPicture pic = sheet.getPictures().get(0);
BufferedImage loImage = pic.getPicture();
ImageIO.write(loImage,"jpg",new File("ExtractedImage.jpg"));
}
}
图片读取结果:
示例3删除图片
import com.spire.xls.*;
public class RemoveImage {
public static void main(String[] args) {
//加载文档
Workbook wb = new Workbook();
wb.loadFromFile("AddImage.xlsx");
//获取指定工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取指定图片,删除
sheet.getPictures().get(0).remove();
//保存文档
wb.saveToFile("RemoveImage.xlsx",ExcelVersion.Version2010);
wb.dispose();
}
}
运行程序后,生成的文件可查看图片删除效果。
来源:https://www.cnblogs.com/Yesi/p/12356955.html


猜你喜欢
- 将jar包发布到Maven中央仓库(Maven Central Repository),这样所有的Java开发者都可以使用Maven直接导入
- SSM Mapper查询出返回数据查不到个别字段原因开启了驼峰命名法则,Bean里的字段不识别_注释掉或者把实体类里的字段_去掉换位大写SS
- 前言在这篇文章里,最后总结处,我说了会讲讲循环依赖中,其中一个类添加@Async有可能会导致注入失败而抛异常的情况,今天就分析一下。一、异常
- 在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,Mybatis在resultMap提供了collection标
- 介绍众所周知,AOP(面向切面编程)是Spring框架的特色功能之一。通过设置横切关注点(cross cutting concerns),A
- 一、场景Java实现文件上传到服务器本地,并通过url访问有个需求,前端上传文件,需要用开关的方式同时支持上传七牛和服务器本地,方便不同的用
- 我有以下课程public class ModInfo : IEquatable<ModInfo>{ public int ID
- 本文实例讲述了C#实现将记事本中的代码编译成可执行文件的方法,运行环境为VS2012,具体方法如下:1、在记事本中编写如下代码:using
- 这篇文章主要介绍了Java模拟多线程实现抢票,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考
- 本文为大家分享了Android AIDL实现两个APP间的跨进程通信实例,供大家参考,具体内容如下1 Service端创建首先需要创建一个A
- 使用代码特别注意 :拼接条件时,所使用到的条件strID,strBir必须是独立的var predicate = PredicateBuil
- 下面还有投票,帮忙投个票👍前言最近在看某个开源项目代码并准备参与其中,代码过了一遍后发现多个自定义的配置文件用来装载业务配置代替数据库查询,
- 什么是JSON?JSON (JavaScript Object Notation) is a lightweight data-interc
- DataHub 类似于传统大数据解决方案中 Kafka 的角色,提供了一个数据队列功能。DataHub 除了供了一个缓冲的队列作用。同时由于
- 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理
- 本文以新建的CUDA的.cu程序来进行说明,同样也适用于C程序。一,发现问题1,首先我们在vs2019中创建了工程以后(我所创建的工程名称为
- 作用:1、定时执行某种功能2、重复执行、定时重复执行、定次数执行某种功能类别:1、 Thread(new Runnable)2、T
- 导读Lombok:可以让你的POJO代码特别简洁,不止简单在BO/VO/DTO/DO等大量使用,还有设计模式,对象对比等MybatisPlu
- service有两种类型:本地服务(Local Service):用于应用程序内部远程服务(Remote Sercie):用于android
- 本文实例讲述了Android实现Flip翻转动画效果的方法,分享给大家供大家学习借鉴。具体实现代码如下:LinearLayout locat