easy-poi导入excel数据

需求:使用easy-poi导入excel数据
实现:
一:引入依赖(这里因为之前引入的有poi,会导致版本冲突,所以做了排除;如果正常引入无需排除)
<dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-spring-boot-starter</artifactId>
      <version>4.1.2</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-ooxml</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>slf4j-log4j12</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-ooxml-schemas</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
二:导入实现代码
public void imp(MultipartFile multipartFile ){
        //导入参数
        ImportParams params = new ImportParams();
        //导入
        List<SocietyCouncilList> list = ExcelImportUtil.importExcel(multipartFile.getInputStream(), SocietyCouncilList.class, params);
        
        //list就是excel结果
    }

实体类:(需要使用@Excel注解,对应的name为excel的表头数据)

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;

@ExcelTarget("uploadExcel")
public class SocietyCouncilList extends BaseEntity {
	//人员名称
    @Excel(name = "姓名")
    private String cname;

    //性别:0:男,1:女

    private int gender;

    @Excel(name = "性别")
    private String sex;

    //民族
    @Excel(name = "民族")
    private String national;
}
优化:这里需要前台传MultipartFile类型的文件,如果是文件服务器上的普通文件在使用时添加如下操作
		//创建连接,path为文件路径
		URI u = URI.create(path);
        File fi = null;
		//将文件转为流
        try (InputStream inputStream = u.toURL().openStream()) {
            //新创建个文件
            fi = new File(profile + "/" + "人员test.xls");
			//将文件流写入新创建的文件中
            FileUtils.copyInputStreamToFile(inputStream, fi);
        }
		//将File文件转为 MultipartFile
        MultipartFile file = getMultipartFile(fi);

File转MultipartFile

public static MultipartFile getMultipartFile(File file) {
        FileItem item = new DiskFileItemFactory().createItem("file"
                , MediaType.MULTIPART_FORM_DATA_VALUE
                , true
                , file.getName());
        try (InputStream input = new FileInputStream(file);
             OutputStream os = item.getOutputStream()) {
            // 流转移
            IOUtils.copy(input, os);
        } catch (Exception e) {
            throw new IllegalArgumentException("Invalid file: " + e, e);
        }

        return new CommonsMultipartFile(item);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值