这篇文章给大家介绍如何使用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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4185276/blog/3125992