import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
public class ReadExcelImage {
public static void main(String[] args) {
String filePath = "example.xlsx"; // Excel 文件路径
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis)) {
// 获取第一个 sheet
Sheet sheet = workbook.getSheetAt(0);
// 获取所有的图片数据
for (POIXMLDocumentPart dr : sheet.getRelations()) {
if (dr instanceof XSSFPictureData) {
XSSFPictureData pictureData = (XSSFPictureData) dr;
byte[] pictureBytes = pictureData.getData();
PictureType pictureType = pictureData.getSuggestedFileExtension();
// 输出图片信息
System.out.println("图片类型: " + pictureType);
System.out.println("图片大小: " + pictureBytes.length + " bytes");
// 你可以将图片保存到文件或进行其他处理
// 例如,保存为文件:
// FileOutputStream fos = new FileOutputStream("output." + pictureType);
// fos.write(pictureBytes);
// fos.close();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
导入依赖:
org.apache.poi.ss.usermodel.*
和 org.apache.poi.xssf.usermodel.*
是 Apache POI 库中用于处理 Excel 文件的类。java.io.FileInputStream
用于读取文件输入流。读取 Excel 文件:
FileInputStream
打开 Excel 文件,并使用 XSSFWorkbook
类加载工作簿。获取 Sheet:
workbook.getSheetAt(0)
获取第一个工作表(sheet)。遍历图片数据:
sheet.getRelations()
获取所有与该 sheet 相关的文档部分。XSSFPictureData
类型,如果是,则提取图片数据。处理图片数据:
pictureData.getData()
获取图片的字节数组。pictureData.getSuggestedFileExtension()
获取图片的建议文件扩展名(如 "png" 或 "jpg")。异常处理:
try-with-resources
确保资源在使用后正确关闭。IOException
异常。上一篇:java新建
下一篇:ubuntu 卸载java
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站