easypoi 带图片导入 公司表

前端页面

excel

控制层

java 复制代码
@PostMapping("/importCompanyExcelWithImg")
    @CrossOrigin
    public boolean importCompanyExcelWithImg(@RequestParam("file") MultipartFile file) throws Exception {

        if (file.isEmpty()) {
            throw new Exception("error file is empty");
        }

        ImportParams params = new ImportParams();
        //这里也要设置,否则会有异常
        params.setTitleRows(0);
        params.setHeadRows(1);
        //params.setNeedSave(true);
        List<CompanyImport> companyImports = ExcelImportUtil.importExcel(file.getInputStream(), CompanyImport.class, params);

        List<Company> companies = companyImports.stream().map(e -> {

            Company company = new Company();
            company.setCompanyName(e.getCompanyName());
            company.setCompanyLog(e.getCompanyLogo());
            return company;

        }).collect(Collectors.toList());

        return companyService.saveBatch(companies);
    }

导入实体

java 复制代码
@Data
public class   CompanyImport {

    @Excel(name = "公司名",orderNum = "0")
    private String companyName;

	//注意,这里type要是2,savaPath是图片保存路径
    @Excel(name = "公司LOGO",orderNum = "1",type = 2,savePath = "D:\\tmp_img")
    private String companyLogo;

}

数据库实体

java 复制代码
@Data
@EqualsAndHashCode(callSuper = false)
public class   Company implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    private String companyName;

    private String companyLog;


}

结果如下

如果要保存远端文件服务器怎么办?

在D:\tmp_img此路径下保存图片,然后将该路径下的文件上传到FastDFS中

java 复制代码
@PostMapping("/food/import")
@ApiOperation(value = "批量导入Excel")
public String save(@RequestParam("foots") MultipartFile foots) throws Exception {
        ImportParams params = new ImportParams();
        List<FoodInfoImport> result = ExcelImportUtil.importExcel(foots.getInputStream(),FoodInfoImport.class, params);
        //将图片上传到FastDFS并且将地址保存
        result.forEach(food->{
             if(StringUtil.isNotEmpty(food.getFoodImg())){
                 try {
                     File file = new File(food.getFoodImg());
                     FileInputStream fileInputStream = new FileInputStream(file);
                     //用FileInputStream、File构造MultipartFile
                     MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain",IOUtils.toByteArray(fileInputStream));
                     //调用FastDFS工具类上传到FastDFS
                     String imgUrl = uploadUtils.uploadFile(multipartFile);
                     food.setFoodImg(imgUrl);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
         });
         List<FoodInfo> info = result.stream().map(foodDc::invoke).collect(Collectors.toList());
         //业务层保存数据
         service.saveBatch(info);
         return "success";
    }

https://huaweicloud.csdn.net/63876513dacf622b8df8b2f1.html

相关推荐
AI导出鸭1 天前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
Am-Chestnuts3 天前
AI表格复制到Excel后日期金额和编号被改写:导入与格式检查方法
excel
方渐鸿3 天前
【无标题】使用Agent总结网页信息写入Excel
ai·excel
汉拓3D数字化3 天前
设计标准化怎么落地?企业设计标准化的5阶段实施路径
科技·excel·系统·软件
灵析表格3 天前
json_ObjectToKV 函数:Excel解析JSON对象的权威方案
json·excel
灵析表格3 天前
灵析表格文本处理函数技术白皮书:WPS Excel 官方函数扩展库 18 项文本规整与正则批处理企业落地标准
ai·json·excel·wps
灵析表格4 天前
WPS Excel官方函数扩展库数据安全加密校验函数深度研究报告:Excel国密SM3/SM4加解密、MD5摘要、UUID、Base64与URL编解码全栈解析
excel·wps
AC赳赳老秦4 天前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
VBAMatrix5 天前
表格导航!实现Word合并附注与多个Excel的数据同步
word·excel·审计报告·审计·会计师事务所·报告工具
AI英德西牛仔5 天前
手机文心怎么导出文档?AI 导出鸭一键解决格式崩塌与批量归档难题
人工智能·智能手机·excel·deepseek·ai导出鸭