使用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);
}
效果