Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java读取excel中的图片

作者:风外听竹   发布日期:2025-07-06   浏览:28

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();
        }
    }
}

解释说明:

  1. 导入依赖

    • org.apache.poi.ss.usermodel.*org.apache.poi.xssf.usermodel.* 是 Apache POI 库中用于处理 Excel 文件的类。
    • java.io.FileInputStream 用于读取文件输入流。
  2. 读取 Excel 文件

    • 使用 FileInputStream 打开 Excel 文件,并使用 XSSFWorkbook 类加载工作簿。
  3. 获取 Sheet

    • 使用 workbook.getSheetAt(0) 获取第一个工作表(sheet)。
  4. 遍历图片数据

    • 使用 sheet.getRelations() 获取所有与该 sheet 相关的文档部分。
    • 检查每个文档部分是否是 XSSFPictureData 类型,如果是,则提取图片数据。
  5. 处理图片数据

    • pictureData.getData() 获取图片的字节数组。
    • pictureData.getSuggestedFileExtension() 获取图片的建议文件扩展名(如 "png" 或 "jpg")。
    • 可以根据需要保存图片或进行其他处理。
  6. 异常处理

    • 使用 try-with-resources 确保资源在使用后正确关闭。
    • 捕获并打印可能的 IOException 异常。

上一篇:java新建

下一篇:ubuntu 卸载java

大家都在看

java连接数据库的代码

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java实体类转json字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站