资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何使用easypoi导入excel

这篇文章给大家介绍如何使用easypoi导入excel,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

界首网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

使用easypoi导入excel

easypoi导入excel需要引入依赖:


            
                cn.afterturn
                easypoi-base
                3.2.0
            
            
                cn.afterturn
                easypoi-web
                3.2.0
            
            
                cn.afterturn
                easypoi-annotation
                3.2.0
            

首先我们准备一个excel模板并带有一些数据

如何使用easypoi导入excel

第二步:准备一个实体对象

package com.xash.quartzDemo.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@ExcelTarget("Layer")
public class Layer {
    private String layerId;

    @Excel(name = "法规名称", isImportField = "true_st")
    private String layerName;

    @Excel(name = "法规描述", isImportField = "true_st")
    private String description;


   
    @Excel(name = "法规发布日期",importFormat = "yyyy-MM-dd")
    private String releaseTime;


 
    @Excel(name = "法规上传日期",importFormat = "yyyy-MM-dd")
    private String recordTime;

    private String fileName;

    public String getLayerId() {
        return layerId;
    }

    public void setLayerId(String layerId) {
        this.layerId = layerId == null ? null : layerId.trim();
    }

    public String getLayerName() {
        return layerName;
    }


    public void setLayerName(String layerName) {
        this.layerName = layerName == null ? null : layerName.trim();
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    public String getReleaseTime() {
        return releaseTime;
    }

  
    public void setReleaseTime(Date releaseTime) throws ParseException {
    	
        this.releaseTime =sdf.format(releaseTime);
    }

    public String getRecordTime() {
        return recordTime;
    }


    public void setRecordTime(Date recordTime) throws ParseException {
    	 this.recordTime =sdf.format(recordTime);
     
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName == null ? null : fileName.trim();
    }
}

此处,日期格式对象excel到实体不能自动按格式转换,也不知道原因,所以手动格式化了日期

第三步

创建导入工具类

package com.xash.quartzDemo.util;

import java.io.File;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;


public class Upload {
	  public static  String executeUpload1(String uploadDir,MultipartFile file,String fileName) throws Exception
	    {
	        //文件后缀名
	        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
	        //上传文件名
	        String filename = fileName + suffix;
	        //服务器端保存的文件对象
	        File serverFile = new File(uploadDir + filename);
	        //将上传的文件写入到服务器端文件内
	        file.transferTo(serverFile);

	        return filename;
	    }

	    public static   List importExcel(String filePath, Integer titleRows, Integer headerRows, Class pojoClass){
	        if (StringUtils.isBlank(filePath)){
	            return null;
	        }
	        ImportParams params = new ImportParams();
	        params.setTitleRows(titleRows);
	        params.setHeadRows(headerRows);
	        List list = null;
	        try {
	            list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
	        }catch (Exception e) {
	            e.printStackTrace();

	        }
	        return list;
	    }
	    public static   List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass){
	        if (file == null){
	            return null;
	        }
	        ImportParams params = new ImportParams();
	        params.setTitleRows(titleRows);
	        params.setHeadRows(headerRows);
	        List list = null;
	        try {
	            list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	        return list;
	    }
}

本例使用   public static   List importExcel(String filePath, Integer titleRows, Integer headerRows, Class pojoClass)方法

OK,准备工作做好后,就可以实现excel的导入工作了

准备一个controller前端控制器,

package com.xash.quartzDemo.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.xash.quartzDemo.entity.Layer;
import com.xash.quartzDemo.util.Upload;

import cn.afterturn.easypoi.excel.entity.ImportParams;

@RestController
public class Eecelmport {
   
	@RequestMapping("/excel")
	public List excel() {
	  String fliename="模板导入.xlsx";
	  Listlist=null;;
	  try {
		  list=Upload.importExcel("C:/Users/gaofei/Desktop/"+fliename, 1, 3, Layer.class);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		
		return list;
	}


}

前端访问:

http://192.168.2.81:8082/excel,后端响应并返回:

[{"layerId":null,"layerName":"hello","description":"hello","releaseTime":"2015-07-17","recordTime":"2015-09-17","fileName":null},{"layerId":null,"layerName":"world","description":"world","releaseTime":"2015-08-17","recordTime":"2015-10-17","fileName":null}]

关于如何使用easypoi导入excel就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:如何使用easypoi导入excel
URL地址:http://www.cdkjz.cn/article/jspdee.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220