1

在日常编辑Excel文档时,大多数时候都是对数据进行统计与分析,但有时也不可避免会遇到需要添加图片到文档的情况,以此来使数据与图片相结合,进而达到使文档内容更加丰满和多样的效果。本文将通过使用Java程序来演示如何添加、读取、删除和重置Excel中的图片。

使用工具:Free Spire.XLS for Java(免费版)

Jar文件获取及导入:

方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
安装图.png

方法2:通过maven仓库安装导入。具体安装教程详见此网页

【示例1】添加图片

import com.spire.xls.ExcelPicture;  
import com.spire.xls.ExcelVersion;  
import com.spire.xls.Workbook;  
import com.spire.xls.Worksheet;  
  
public class AddImage {  
    public static void main(String[] args) {  
        //创建Workbook实例  
  Workbook workbook = new Workbook();  
        //加载Excel文档  
  workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");  
        //获取第一张工作表  
  Worksheet sheet = workbook.getWorksheets().get(0);  
  
        //添加图片到工作表的指定位置  
  ExcelPicture pic = sheet.getPictures().add(20, 1,"C:\\Users\\Test1\\Desktop\\Image.jpg");  
  
        //设置图片的宽度和高度  
  pic.setWidth(400);  
        pic.setHeight(300);  
  
        //保存文档  
  workbook.saveToFile("output/InsertImage.xlsx", ExcelVersion.Version2013);  
    }  
}

图片添加效果:

效果1.png

【示例2】读取图片

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("C:\\Users\\Test1\\Desktop\\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"));  
    }  
}

图片读取效果:

效果2.png

【示例3】删除图片

import com.spire.xls.*;  
public class DeleteImage {  
    public static void main(String[] args) {  
        //加载示例文档  
  Workbook workbook = new Workbook();  
  workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImage.xlsx");  
  
        //获取第一个工作表  
  Worksheet sheet = workbook.getWorksheets().get(0);  
  
        //获取第一张图片  
  ExcelPicture pic = sheet.getPictures().get(0);  
  
        //删除图片  
  pic.remove();  
  
        //保存文档  
  workbook.saveToFile("output/RemoveImage.xlsx");  
        workbook.dispose();  
    }  
}

图片删除效果:

效果3.png

【示例4】重置图片大小和位置

import com.spire.xls.*;  
  
public class ResetPosition {  
    public static void main(String[] args) {  
        //加载示例文档  
  Workbook workbook = new Workbook();
  workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImage.xlsx");  
  
        //获取第一个工作表  
  Worksheet sheet = workbook.getWorksheets().get(0);  
  
        //获取第一张图片  
  ExcelPicture pic = sheet.getPictures().get(0);  
  
        //重置大小  
  pic.setHeight(150);  
        pic.setWidth(200);  
  
        //重置位置  
  pic.setLeft(400);  
        pic.setTop(400);  
  
        //保持文档  
  workbook.saveToFile("output/ResetPosition.xlsx");  
        workbook.dispose();  
    }  
}

图片重置效果:

效果4.png

(本文完)


Tina_Tang
298 声望9 粉丝