一、前言
easypoi:就是在poi的基础上再次封装简化了对文档的导入导出,使用poi框架需要写一堆代码,而easypoi 可以通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法。
easypoi gitee地址:https://gitee.com/lemur/easypoi
开发指南:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8
二、快速集成easypoi
1.pom坐标的引入
start 引入 推荐
cn.afterturn
easypoi-spring-boot-starter
4.3.0
org.hibernate
hibernate-validator
5.3.6.Final
或者
cn.afterturn
easypoi-base
3.2.0
cn.afterturn
easypoi-web
3.2.0
cn.afterturn
easypoi-annotation
3.2.0
org.hibernate
hibernate-validator
5.3.6.Final
2. excel 文档映射 Bean
excel 文档 easydemo.xlsx
Bean
@Excel name 对应文档列头名 format 时间格式
@NotNull 非null 校验使用 message 错误消息
@Pattern(regexp = "[\u4E00-\u9FA5]*", message = "不是中文") 正则表达式校验
@Data
public class ExcelDemoInfo {
@Excel(name = "主键")
@NotNull(message = "主键不能为null")
private Integer id;
@Excel(name = "描述")
@Pattern(regexp = "[\u4E00-\u9FA5]*", message = "不是中文")
private String desc;
@Excel(name="时间",format="yyyy/MM/dd" )
private Date time;
}
校验结果返回值
校验结果返回值 接收 实现IExcelModel 集成实现的bean 也可以写道一块
public class ExcelVerifyEntityOfMode extends ExcelDemoInfo implements IExcelModel {
private String errorMsg;
@Override
public String getErrorMsg() {
return errorMsg;
}
@Override
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
3. test
导入
ExcelImportResult objects = ExcelImportUtil.importExcelMore(fileInputStream, ExcelVerifyEntityOfMode.class, params)
导出
ExcelExportUtil.exportExcel(params, ExcelDemoInfo.class, list);
@Slf4j
@SpringBootTest
class EasypoiDemoApplicationTests {
@Test
void contextLoads() throws Exception {
FileInputStream fileInputStream = new FileInputStream("D://easydemo.xlsx");
ImportParams params = new ImportParams();
//需要校验的方法
params.setNeedVerify(true);
ExcelImportResult objects = ExcelImportUtil.importExcelMore(fileInputStream, ExcelVerifyEntityOfMode.class, params);
log.info("校验结果 true:失败 false:成功 verifyFail:{} ", objects.isVerifyFail());
log.info("校验成功 集合类 :{}", objects.getList());
log.info("校验失败 集合类 :{}", objects.getFailList());
for (ExcelVerifyEntityOfMode excelVerifyEntityOfMode : objects.getFailList()) {
log.info("校验失败原因 errorMsg:{}", excelVerifyEntityOfMode.getErrorMsg());
}
}
/**
* 导出
*
* @throws Exception
*/
@Test
void exportExcelTest() throws Exception {
List list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
ExcelDemoInfo excelDemoInfo = new ExcelDemoInfo();
excelDemoInfo.setId(i);
excelDemoInfo.setDesc("desc" + i);
excelDemoInfo.setTime(new Date());
list.add(excelDemoInfo);
}
ExportParams params = new ExportParams();
params.setTitle("测试");
params.setSheetName("测试1");
//需要校验的方法
Workbook workbook = ExcelExportUtil.exportExcel(params, ExcelDemoInfo.class, list);
FileOutputStream fos = new FileOutputStream("D:/测试.xlsx");
workbook.write(fos);
fos.close();
}
}
三、总结
我只是写了一个大概的 导入到处 具体的可以查看 开发指南
开发指南:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8
有疑问可以评论留言哦 .共同学习,共同进步
点个关注吧