easyPoi導入帶圖片的excel


注意:導入的圖片需為浮動圖片

官方API:http://easypoi.mydoc.io

1.依賴

  <dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>3.2.0</version>
  </dependency>
  <dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>3.2.0</version>
  </dependency>
  <dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>3.2.0</version>
  </dependency>

2.代碼

ImportExcel.java:
public static List<GoodsHasImgModel> analysisExcelFileEasyPoi(MultipartFile file) throws Exception {
ImportParams params = new ImportParams();
params.setNeedSave(false);
   //解析后的圖片字段存放的是圖片的地址,需要在GoodsModel中配置圖片存放路徑
List<GoodsModel> result = ExcelImportUtil.importExcel(file.getInputStream(), GoodsModel.class, params);
for (GoodsModel goodsModel : result) {
if (StringUtils.isNotEmpty(goodsModel.getGoodsPic())) {
        //將圖片文件轉為base64圖片
File file1 = new File(goodsModel.getGoodsPic());
FileInputStream inputStream = new FileInputStream(file1);
byte[] buffer = new byte[inputStream.available()];
if (inputStream.read(buffer) == -1) {
inputStream.close();
}
StringBuilder imageBase64 = new StringBuilder(Base64.getEncoder().encodeToString(buffer));
goodsHasImgModel.setGoodsPic(new String(imageBase64));
}
}
return result;
}

@ExcelTarget("goodsEntity")
@Data
@Component
public class GoodsHasImgModel {

@Excel(name = "商品名稱")
private String goodsName;
  
   //savePath配置的是解析excel后存放圖片的路徑
@Excel(name = "商品照片", type = 2, width = 20, height = 10, imageType = 1, savePath = "/home/file/img")
private String goodsPic;

   ...
}

刪除臨時圖片
String[] fileList = new File(savePath).list();
for (String str : fileList) {
File file1 = new File(savePath + "/" + str);
if (file1.isFile()) {
logger.info("清理圖片緩存:" + str + (file1.delete() ? "成功" : "失敗"));
}
}




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM