java 导出excel 注解_Java基于注解和反射导入导出Excel

list = ei.getDataList(User.class);

for (User user : list){

try{

//to do: 保存/处理数据

//userService.save(user);

logger.info(user.toString());

successNum++;

}catch(ConstraintViolationException ex){

failureNum++;

}catch (Exception ex) {

failureNum++;

}

}

if (failureNum>0){

failureMsg.insert(0, ", Failures: "+failureNum);

}

logger.info("Had Operation "+successNum+" Data;"+" "+"Failure "+failureNum);

} catch (Exception e) {

logger.error("导入失败",e);

}

}

```

###### 3. 导出Excel文件

```java

@RequestMapping("export")

public void export(HttpServletResponse response){

try {

String fileName = "User Data"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";

Listusers=new ArrayList<>();

User user1=new User();

user1.setUserName("小明");

user1.setNickName("猪小明");

user1.setAge(20);

user1.setBirth(DateUtils.parseDate("1992-10-10"));

users.add(user1);

User user2=new User();

user2.setUserName("小红");

user2.setNickName("小小红");

user2.setAge(18);

user2.setBirth(DateUtils.parseDate("1998-11-09"));

users.add(user2);

new ExportExcel("Test Over View Define", User.class,2).setDataList(users).write(response, fileName).dispose();

} catch (Exception e) {

}

}

```

##### 3. 演示

> 端口号可以自己通过在application.properties文件中,添加**server.port=8000**进行定义

**通过浏览器访问接口*http://localhost:8000/user/import/template*,下载模板:**

![](/contentImages/image/20171126/zAKzo5j1hg4ufgP5Vai.png)

![](/contentImages/image/20171126/gWK895vercoa9kGUJ88.png)

**编辑Excel文件,并通过接口测试工具[Postman](https://www.getpostman.com/)访问接口*localhost:8000/user/import*:**

![](/contentImages/image/20171126/MrMpTl8miLc42Z55nPm.png)

接口测试工具中,上传文件,并访问:

![](/contentImages/image/20171126/X5M1lBS9cqGaXGdnIZb.png)

![](/contentImages/image/20171126/3iDOQsO4hmD9vE2NDES.png)

上传之后,通过日志输出文件解析的结果:

```

2017-11-24 19:56:15.186 INFO 37428 --- [nio-8000-exec-5] com.shexd.Controller.UserController : User{userName='小明', nickName='猪小明', age=18, birth=1992-10-09}

2017-11-24 19:56:15.187 INFO 37428 --- [nio-8000-exec-5] com.shexd.Controller.UserController : User{userName='蘑菇头', nickName='小蘑菇', age=21, birth=1996-09-25}

2017-11-24 19:56:15.187 INFO 37428 --- [nio-8000-exec-5] com.shexd.Controller.UserController : Had Operation 2 Data; Failure 0

```

**访问接口*http://localhost:8000/user/export*,从系统导出Excel文件**

![](/contentImages/image/20171126/HblUQ2BvPA3v9YoPmUn.png)

#### 7. 项目目录结构

![](/contentImages/image/20171127/FcgWJlTPme38fxbMN8m.png)

#### 8. 小结

本文简单介绍了利用Java注解和反射对Excel进行操作的基本原理,并实例进行详细说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值