首页 > 编程语言 >Java: 在Excel中插入和提取图片

Java: 在Excel中插入和提取图片

时间:2022-12-14 17:33:26浏览次数:69  
标签:Java spire Excel 插入 com Workbook import xls

在编辑Excel文档时,为了丰富文档内容或者更好地说明文档内容,有时我们会在单元格中插入图片。此外,整理文档内容时,也可以通过编程的方式将图片从Excel中提取出来。接下来我就将分享使用Free Spire.XLS for Java在Excel中插入和提取图片的具体方法和相关代码。

 

安装Spire.XLS.Jar

方法一:

如果您使用的是maven,可以通过添加以下代码到项目的pom.xml文件中,将 JAR文件导入到应用程序中。

<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.xls.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

方法二:

如果您没有使用maven,则可以从此链接下载Free Spire.XLS for Java,下载完成后,将下载包进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的lib文件夹下的Spire.XLS.jar文件导入到项目中。

 

Excel中插入图片

具体操作:

  • 创建Workbook实例。
  • 通过Workbook.loadFromFile()方法,加载Excel示例文档。
  • 通过Workbook.getWorksheets().get()方法,获取第一张工作表。
  • 使用Worksheet.getPictures().add()方法将图片添加到工作表的指定位置。
  • 利用Pictures.setWidth()Pictures.setHeight()方法设置图片的宽度和高度。
  • 使用Workbook.saveToFile()保存文档。

相关代码:

import com.spire.xls.ExcelPicture;

import com.spire.xls.ExcelVersion;

import com.spire.xls.Workbook;

import com.spire.xls.Worksheet;

 

public class InsertImage {

    public static void main(String[] args){

        //创建Workbook实例

        Workbook workbook = new Workbook();

        //加载Excel文档

        workbook.loadFromFile("sample.xlsx");

        //获取第一张工作表

        Worksheet sheet = workbook.getWorksheets().get(0);

//添加图片到工作表的指定位置

        ExcelPicture pic = sheet.getPictures().add(2, 2,"image.jpg");

        //设置图片的宽度和高度

        pic.setWidth(200);

        pic.setHeight(120);

        //保存文档

        workbook.saveToFile("InsertImage.xlsx", ExcelVersion.Version2013);

    }

}

 

Excel中提取图片

具体操作:

  • 创建Workbook实例。
  • 通过Workbook.loadFromFile()方法,加载Excel示例文档。
  • 通过Workbook.getWorksheets().get()方法,获取第一张工作表。
  • 使用Pictures.getPicture()ImageIO.write()方法获取工作表中第一张图片并保存到指定路径。

相关代码:

import com.spire.xls.ExcelPicture;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
 
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
 
public class ReadImage {
    public static void main(String[] args) throws IOException {
        //创建Workbook实例
        Workbook workbook = new Workbook();
        //加载Excel文档
        workbook.loadFromFile("InsertImage.xlsx");
        //获取第一张工作表
        Worksheet sheet = workbook.getWorksheets().get(0);
        //获取工作表中第一张图片并保存到指定路径
        ExcelPicture pic = sheet.getPictures().get(0);
        BufferedImage loImage = pic.getPicture();
        ImageIO.write(loImage,"jpg",new File("output/ReadImage.jpg"));
    }
}

 


标签:Java,spire,Excel,插入,com,Workbook,import,xls
From: https://www.cnblogs.com/Gia-/p/16982744.html

相关文章

  • JavaScript内存中的一些形状的读书笔记
    原文地址:http://zoo.zhengcaiyun.cn/blog/article/code-shapeundefined和null不同的原因undefined是栈空间中表示未定义含义的一块特殊的固定的内存区域null是堆内存......
  • Javascript学习
    目录js引入的三种方式js基础语法数组遍历的方法es6中的箭头函数js使用的中的注意点js变量声明的三种方式js引入的三种方式<!DOCTYPEhtml><html> <head> <metachars......
  • 【Java】Java 中实现深拷贝
    浅拷贝和深拷贝浅拷贝:只复制一层,如果对象的属性是引用数据类型,只会复制属性内存地址。深拷贝:不只复制一层,如果对象属性是引用数据类型,会继续向下进行复制。深拷贝的实......
  • EasyExcel导出样式设置(注解)
    EasyExcel导出样式设置(注解)参考资料链接1:EasyExcel--自定义表头(标题)样式策略参考资料链接2:EasyExcel常用注解参考资料链接3:EasyExcel注解大全@HeadRowHeight......
  • Java继承详解
    继承的定义、功能及要求定义:class子类extends父类{}通常也称子类为派生类、父类为超类。功能: 继承的主要目的是使子类可以重用父类的结构,也可以根据子类功能的需......
  • 基于Java+Swing实现俄罗斯方块游戏
    @目录一、系统介绍二、功能展示三、其他系统四、获取源码一、系统介绍俄罗斯方块项目,基本功能包括:游戏主界面显示模块、方块及数据显示模块、方块移动控制模块、游戏界面......
  • 基于Java+Swing实现连连看游戏
    @目录一、系统介绍二、功能展示三、其它1.其他系统实现五.获取源码一、系统介绍基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下:(1)消除......
  • 基于Java+Swing+Socket实现泡泡堂游戏
    @目录一、功能展示1.游戏登陆2.房间3.对战二、代码展示三、其他系统四、获取源码前言《泡泡堂》是由韩国游戏公司Nexon开发的一款休闲游戏(CasualGame),于2003年在中国大陆......
  • java中的多态
    本文主要讲述java中的多态性质代码结构如图:Animal类:publicclassAnimal{privateStringname;publicAnimal(Stringname){this.name=n......
  • Java线程篇(十一):Fork/Join-Java并行计算框架
    并行是指系统内有多个任务同时执行,而并发是指系统内有多个任务同时存在,不同的任务按时间分片的方式切换执行,由于切换的时间很短,给人的感觉好像是在同时执行。 Java在JDK7......