这篇文章给大家介绍如何使用easypoi导入excel,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
使用easypoi导入excel
easypoi导入excel需要引入依赖:
<!--easypoi 导出导入excel依赖--> <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>
首先我们准备一个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 <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass){ if (StringUtils.isBlank(filePath)){ return null; } ImportParams params = new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); List<T> list = null; try { list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params); }catch (Exception e) { e.printStackTrace(); } return list; } public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass){ if (file == null){ return null; } ImportParams params = new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); List<T> list = null; try { list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params); } catch (Exception e) { e.printStackTrace(); } return list; } }
本例使用 public static <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> 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<Layer> excel() { String fliename="模板导入.xlsx"; List<Layer>list=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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。