在日常编辑Excel文档时,大多数时候都是对数据进行统计与分析,但有时也不可避免会遇到需要添加图片到文档的情况,以此来使数据与图片相结合,进而达到使文档内容更加丰满和多样的效果。本文将通过使用Java程序来演示如何添加、读取、删除和重置Excel中的图片。
使用工具:Free Spire.XLS for Java(免费版)
Jar文件获取及导入:
方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
方法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);
}
}
图片添加效果:
【示例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"));
}
}
图片读取效果:
【示例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();
}
}
图片删除效果:
【示例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();
}
}
图片重置效果:
(本文完)