使用EasyExcel实现简单的图片写入

接着:http://www.zeromemos.com/index/article/read.html?id=357

写个图片实体类

package com.zeromemos.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.converters.string.StringImageConverter;
import lombok.Data;

import java.io.File;
import java.io.InputStream;
import java.net.URL;

@Data
@ContentRowHeight(100) //设置行高
@ColumnWidth(100 / 8)  //设置行宽
public class ImageDemoData {
    //设置表头名称
    @ExcelProperty("图片")
    private File file;

    private InputStream inputStream;
    /**
     * 如果string类型 必须指定转换器,string默认转换成string
     */
    @ExcelProperty(converter = StringImageConverter.class)
    private String string;
    private byte[] byteArray;
    /**
     * 根据url导出
     *
     * @since 2.1.1
     */
    private URL url;
}

测试

    @Test
    public void run5(){
        //指定写出的excel文件
        String fileName = "C:\\Users\\admin\\Desktop\\demo.xlsx";
        //指定读取的图片文件
        String imagePath = "C:\\Users\\admin\\Desktop\\路飞.jpg";
        //如果插入多张
        List<ImageDemoData> list = new ArrayList<>();
        //图片对象
        ImageDemoData imageDemoData = new ImageDemoData();
        //加入到list
        list.add(imageDemoData);
        //这里只用了File,还可以用对象里的InputStream、String、byte[]、URL
        imageDemoData.setFile(new File(imagePath));
        EasyExcel.write(fileName, ImageDemoData.class).sheet().doWrite(list);
    }

效果