在日常編輯Excel文檔時(shí),大多數(shù)時(shí)候都是對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與分析,但有時(shí)也不可避免會(huì)遇到需要添加圖片到文檔的情況,以此來使數(shù)據(jù)與圖片相結(jié)合,進(jìn)而達(dá)到使文檔內(nèi)容更加豐滿和多樣的效果。本文將通過使用Java程序來演示如何添加、讀取、刪除和重置Excel中的圖片。
使用工具:Free Spire.XLS for Java(免費(fèi)版)
Jar文件獲取及導(dǎo)入:
方法1:通過官網(wǎng)下載獲取jar包。解壓后將lib文件夾下的Spire.Xls.jar文件導(dǎo)入Java程序。(如下圖)
方法2:通過maven倉(cāng)庫(kù)安裝導(dǎo)入。具體安裝詳情參見此網(wǎng)頁。
【示例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) {
//創(chuàng)建Workbook實(shí)例
??????? 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");
//設(shè)置圖片的寬度和高度
??????? 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 {
//創(chuàng)建Workbook實(shí)例
??????? 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");
//獲取第一個(gè)工作表
??????? 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");
//獲取第一個(gè)工作表
??????? 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();
??? }
}
圖片重置效果:
(本文完)