编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Excel导出,Excel模板导出Excel导入,Word模板导出神器-Easypoi

wxchong 2024-08-18 00:33:19 开源技术 12 ℃ 0 评论

概述

Easypoi 是码云上的一个开源项目。项目开发组织是Lemur开源。目前属于码云最有价值开源项目。Easypoi 是对poi的封装,其主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法

功能特点

  • 基于注解的导入导出,修改注解就可以修改Excel
  • 支持常用的样式自定义
  • 基于map可以灵活定义的表头字段
  • 支持一堆多的导出,导入
  • 支持模板的导出,一些常见的标签,自定义标签
  • 支持HTML/Excel转换,如果模板还不能满足用户的变态需求,请用这个功能
  • 支持word的导出,支持图片,Excel

Excel导入导出

Excel的导入导出是Easypoi的核心功能,前期基本也是围绕这个打造的,主要分为三种方式的处理,其中模板和Html目前只支持导出,因为支持Map.class其实导入应该是怎样都支持的

  • 注解方式,注解变种方式
  • 模板方式
  • Html方式

因本人只使用过注解方式,其余方式可以去码云上查看即可。

注解

  • @Excel 作用到filed上面,是对Excel一列的一个描述
  • @ExcelCollection 表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示
  • @ExcelEntity 表示一个继续深入导出的实体,但他没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段
  • @ExcelIgnore 和名字一样表示这个字段被忽略跳过这个导导出
  • @ExcelTarget 这个是作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理

Bean 定义

导出excel


导出效果

集合定义

@ExcelTarget("courseEntity")
public class CourseEntity implements java.io.Serializable {
 /** 主键 */
 private String id;
 /** 课程名称 */
 @Excel(name = "课程名称", orderNum = "1", width = 25)
 private String name;
 /** 老师主键 */
 @ExcelEntity(id = "absent")
 private TeacherEntity mathTeacher;
 @ExcelCollection(name = "学生", orderNum = "4")
 private List<StudentEntity> students;}
@ExcelTarget("teacherEntity")
public class TeacherEntity implements java.io.Serializable {private String id;/** name */@Excel(name = "主讲老师_major,代课老师_absent", orderNum = "1", isImportField = "true_major,true_absent")private String name;
Workbook workbook = ExcelExportUtil.
exportExcel(new
 ExportParams("2412312", "测试", "测试"),
 CourseEntity.class, list);

导出效果

Excel导入介绍

有导出就有导入,基于注解的导入导出,配置配置上是一样的,只是方式反过来而已,比如类型的替换 导出的时候是1替换成男,2替换成女,导入的时候则反过来,男变成1 ,女变成2,时间也是类似。

总结

easypoi 虽然是对poi的封装,但易用性大大提升,对于不了解poi的开发者,属于一个导入导出excel的工具包。本文只列出了最基本的excel导入导出,实际上还有很多好用的功能,大家可以去官网自行了解。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表