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. Deep Learning framework --- MexNet 安装,测试,以及相关问题总结

    Deep Learning framework --- MexNet 安装,测试,以及相关问题总结  一.安装:   参考博文:http://www.open-open.com/lib/view/op ...

  2. (转) RNN models for image generation

    RNN models for image generation MARCH 3, 2017   Today we’re looking at the remaining papers from the ...

  3. Google advertiser api开发概述

    对象.方法和服务 AdWords API 主要供 AdWords 的高级用户使用.如果您是 AdWords 新手,或需要复习 AdWords 基本概念,请查看 AdWords 基础知识页面. 对象层级 ...

  4. 1、http协议基础及IO模型

    Nginx (web server,web reverse proxy): http协议:80/tcp,HyperText Transfer Procotol http协议版本: HTTP/0.9:原 ...

  5. JMeter中关于动态切换不同CSV文件解决方案

    最近写case,需要当前播放节目的数据作为输入数据,所以每个时刻所用的数据只能是当前时刻附件的数据,尝试用CSV Data Set Config动态加载不同的文件,没有成功,好像CSV Data Se ...

  6. Broken Keyboard (a.k.a. Beiju Text) 思路

    问题:You’re typing a long text with a broken keyboard. Well it’s not so badly broken. The only problem ...

  7. centos7安装tomcat8 新手入门 图文教程

    系统环境 操作系统:64位CentOS Linux release 7.2.1511 (Core) JDK版本:1.8.0_121 下载tomcat8压缩包 访问官网:http://tomcat.ap ...

  8. https申请部署

    此案例用IIS8.0演示 前提条件: 1.HTTPS协议需要443端口,安全组和防火墙开放443端口. 2.需要SSL证书 开放端口就不说了,主要说下申请SSL证书. 1.https://www.ss ...

  9. logback的使用

    一.logback与log4j的比较(摘自他人博客):     1.更快的实现  Logback的内核重写了,在一些关键执行路径上性能提升10倍以上.而且logback不仅性能提升了,初始化内存加载也 ...

  10. The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet- mapping*,session-config?,mime-map

    修改了一下web.xml,加入了一个<filter>,然后就报这样的错??? The content of element type "web-app" must ma ...