如何通过Java程序在Excel中插入和提取图片
在编辑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")); } }