easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法。

具体实现步骤:

1、Maven中添加依赖

        <!--easypoi导出excel-->
<!--easypoi-base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-base</artifactId>
<version>${easypoi-base.version}</version>
</dependency>
<!--easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-web</artifactId>
<version>${easypoi-web.version}</version>
</dependency>
<!--easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>${easypoi-annotation.version}</version>
</dependency>

2、POJO中添加注解

/**
* <p>
* 管理员表
* </p>
*
* @Excel所含的参数:
* name:导入导出字段名称,比如: name = "学生姓名"
* replace :替换值,比如:replace = {"男_1","女_2"}
* width :宽度,比如:width = 30,默认10
* height :高度(一个设置全局生效), height = 20 ,默认10
* orderNum :排序,默认0
* format :时间格式化
* type :导出字段类型导出类型 1 是文本 2 是图片,3是函数默认是文本,默认1
* imageType :图片类型, 导出类型 1 从file读取 2 是从数据库中读取,默认1
* savePath :图片保存路径,默认upload
*
*/
@ExcelTarget("user")
public class User extends Model<User> { private static final long serialVersionUID = 1L; /**
* 主键id
*/
@TableId(value="id", type= IdType.AUTO)
private Integer id;
/**
* 头像
*/
private String avatar;
/**
* 账号
*/
@Excel(name = "账号", orderNum = "1", mergeVertical = true, isImportField = "account")
private String account;
/**
* 密码
*/
private String password;
/**
* md5密码盐
*/
private String salt;
/**
* 名字
*/
@Excel(name = "姓名", orderNum = "2", mergeVertical = true, isImportField = "name")
private String name;
/**
* 生日
*/
private Date birthday;
/**
* 性别(1:男 2:女)
*/
private Integer sex;
/**
* 电子邮件
*/
@Excel(name = "邮箱", orderNum = "6", mergeVertical = true, isImportField = "email", width = 30)
private String email;
/**
* 电话
*/
@Excel(name = "电话", orderNum = "7", mergeVertical = true, isImportField = "phone",width = 30)
private String phone;
/**
* 角色id
*/
private String roleid;
/**
* 部门id
*/
private Integer deptid;
/**
* 状态(1:启用 2:冻结 3:删除)
*/
private Integer status;
/**
* 创建时间
*/
@Excel(name = "创建时间", orderNum = "8", mergeVertical = true, isImportField = "createtime" ,format="yyyy-MM-dd hh:mm:ss",width = 30)
private Date createtime;
/**
* 保留字段
*/
private Integer version; /**
* 用于EXCEL导出的相关字段,与Warpper中翻译字段对应
* transient:去序列化,防止将这些字段加入到sql语句中导致sql报错
*/
@Excel(name = "性别", orderNum = "3", mergeVertical = true, isImportField = "sexName")
private transient String sexName; @Excel(name = "角色", orderNum = "4", mergeVertical = true, isImportField = "roleName" , width = 20)
private transient String roleName; @Excel(name = "部门", orderNum = "5", mergeVertical = true, isImportField = "deptName")
private transient String deptName; @Excel(name = "状态", orderNum = "9", mergeVertical = true, isImportField = "statusName")
private transient String statusName; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getAvatar() {
return avatar;
} public void setAvatar(String avatar) {
this.avatar = avatar;
} public String getAccount() {
return account;
} public void setAccount(String account) {
this.account = account;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSalt() {
return salt;
} public void setSalt(String salt) {
this.salt = salt;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public Integer getSex() {
return sex;
} public void setSex(Integer sex) {
this.sex = sex;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} public String getRoleid() {
return roleid;
} public void setRoleid(String roleid) {
this.roleid = roleid;
} public Integer getDeptid() {
return deptid;
} public void setDeptid(Integer deptid) {
this.deptid = deptid;
} public Integer getStatus() {
return status;
} public void setStatus(Integer status) {
this.status = status;
} public Date getCreatetime() {
return createtime;
} public void setCreatetime(Date createtime) {
this.createtime = createtime;
} public Integer getVersion() {
return version;
} public void setVersion(Integer version) {
this.version = version;
} @Override
protected Serializable pkVal() {
return this.id;
} public String getSexName() {
return sexName;
} public void setSexName(String sexName) {
this.sexName = sexName;
} public String getRoleName() {
return roleName;
} public void setRoleName(String roleName) {
this.roleName = roleName;
} public String getDeptName() {
return deptName;
} public void setDeptName(String deptName) {
this.deptName = deptName;
} public String getStatusName() {
return statusName;
} public void setStatusName(String statusName) {
this.statusName = statusName;
} }

3、Controller中请求

  // 下载execl文档
@RequestMapping("/downloadExcel")
public void download(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 告诉浏览器用什么软件可以打开此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=" + new String("用户数据表".getBytes("gbk"), "iso8859-1")+".xls");
//编码
response.setCharacterEncoding("UTF-8");
List<User> list = userService.findAll();
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), User.class, list);
workbook.write(response.getOutputStream());
}

4、前端页面添加Button

<input type="button" value="导出为Excel" onclick="window.open('/downloadExcel');"/>

导出功能实现!

java利用EasyPoi实现Excel导出功能的更多相关文章

  1. java利用jxl实现Excel导入功能

    本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <depende ...

  2. Thinkphp 3.2.2 利用phpexcel完成excel导出功能

    首先百度搜索phpexcel  包,放到项目的这个目录下 接下来  是controller里的导出代码 /**导出预定产品用户信息 * 大白驴 675835721 *2016-12-12 **/pub ...

  3. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  4. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  5. SpringBoot加Poi仿照EasyPoi实现Excel导出

    POI提供API给Java程序对Microsoft Office格式档案读和写的功能,详细功能可以直接查阅API,因为使用EasyPoi过程中总是缺少依赖,没有搞明白到底是什么坑,索性自己写一个简单工 ...

  6. excel导出功能优化

    先说说优化前,怎么做EXCEL导出功能的: 1. 先定义一个VO类,类中的字段按照EXCEL的顺序定义,并且该类只能用于EXCEL导出使用,不能随便修改. 2. 将查询到的结果集循环写入到这个VO类中 ...

  7. vue springboot利用easypoi实现简单导出

    vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...

  8. 用SpringMvc实现Excel导出功能

    以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...

  9. excel导出功能原型

    本篇博客是记录自己实现的excel导出功能原型,下面我将简单介绍本原型: 这是我自制的窗体,有一个ListView和一个Button(导出)控件. 这是我在网上找到了使用exel需要引用的库. usi ...

随机推荐

  1. DIV+CSS+PS实现背景图的三层嵌套以及背景图的合并

    传说中的“三层嵌套技术”. 一.背景图合并: div+css+ps合图相结合的技术:通过精确到1px的css设置,使用ps合成背景图片,特别是小图片合并,来完成页面效果.         首先讲讲三层 ...

  2. HDU 5583 Kingdom of Black and White(暴力)

    http://acm.hdu.edu.cn/showproblem.php?pid=5583 题意: 给出一个01串,现在对这串进行分组,连续相同的就分为一组,如果该组内有x个数,那么就对答案贡献x* ...

  3. Mac python 2.X 升级到 3.X

    Mac OS X10.9默认带了Python2.7,不过现在Python3.3.3出来了,如果想使用最新版本,赶紧升级下吧.基本步骤如下. 第1步:下载Python3.3 下载地址如下: Python ...

  4. 95% CI, 置信区间 Confidence Interval

    什么是置信区间 置信区间又称估计区间,是用来估计参数的取值范围的.常见的52%-64%,或8-12,就是置信区间(估计区间).   置信区间的概述 1.对于具有特定的发生概率的随机变量,其特定的价值区 ...

  5. Trailing Zeroes (I) LightOJ - 1028

    题意就是给你一个数让你找它的正因子个数(包括自身,不包括1),这个地方用到一个公式,如果不用的话按正常思路来写会TL什么的反正就是不容易写对. 求任意一个大于1的整数的正因子个数 首先任意一个数n,n ...

  6. web 前端知识体系 网站资源分析

    一.比较全面的思维导图 二.相关资源 1. 布局框架:Bootstrap: http://getbootstrap.com/Foundation: http://foundation.zurb.com ...

  7. vue2.0 axios交互

    vue使用axios交互时候会出现的问题大致有三个: 1:本地调试跨域问题? 2:post请求,传参不成功,导致请求失败? 3:axios引用,在使用的组件里面引用 解决方案: 问题一:跨域? 解决本 ...

  8. Java将byte[]和int的互相转换

    /** * 将整数转换为byte数组并指定长度 * @param a 整数 * @param length 指定长度 * @return */ public static byte[] intToBy ...

  9. VMware vSphere client 中英文语言界面设置

    安装的时候可以选择简体中文,然后安装后,对vsphere client的执行程序制作快捷方式 以win7 x64环境默认路径为例 英文启动如下: "C:Program Files (x86) ...

  10. HTML第十章总结

    前言 这一章节讲了以下内容: 两个新的 HTML elelments:它们是 <div>和 <span>,使用这两个 element 可以使得 HTML 有更加 serious ...