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进行操作的基本原理,并实例进行详细说明。

java 导出excel 注解_Java基于注解和反射导入导出Excel相关推荐

  1. java jxls 科学计数_java通过jxls框架实现导入导出excel

    02 03 //读取 04 05 public class ReadExcel { 06 private final static String xmlConfig="student.xml ...

  2. Java基于注解和反射导入导出Excel

    代码地址如下: http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包 ...

  3. 不知道密码导出oracle数据库,Oracle数据库密码重置、导入导出库命令示例应用

    重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user s ...

  4. java 读取 excel 注释_java利用注解实现简单的excel数据读取

    搜索热词 实现工具类 利用注解实现简单的excel数据读取,利用注解对类的属性和excel中的表头映射,使用Apache的poi就不用在业务代码中涉及row,rows这些属性了. 定义注解: @Ret ...

  5. java 对excel 截图_java基于poi实现快速操作Excel的工具[v2.1.0]版本更新

    Excel4J v2.x 一. v2.x新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel支持非注 ...

  6. java 对excel 截图_java基于poi实现快速操作Excel的工具[v2.0.0]

    Excel4J v2.0.0 一. v2.0.0新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel ...

  7. java 元数据 注解_Java:注解(元数据)

    初识Java注解 所谓的元数据是指用来描述数据的数据,可能刚听到元数据的时候你会有点陌生,其实任何一个使用过struts或者hibernate的开发人员都在不知不觉中使用元数据,更通俗一点来说元数据是 ...

  8. java datasource 配置_Spring boot 基于注解方式配置datasource

    Spring boot 基于注解方式配置datasource Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionFactor ...

  9. java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解

    反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...

最新文章

  1. Java 理论与实践: 非阻塞算法简介——看吧,没有锁定!(转载)
  2. Security+考试总结
  3. 3DSlicer15:Scripted Module
  4. 节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目
  5. Python弹窗提示警告框MessageBox
  6. 在Ubuntu 上怎么连接装有iOS 7的iPhone或iPad
  7. db2查最新值的前一天值_2019年1月珠海最新房价出炉!看看你家房子值多少钱!...
  8. html设置自定义光标,pixi.js 自定义光标样式
  9. CFA在线计算机,注意!CFA考场上只能携带这种计算机!
  10. Java房地产销售管理系统_Java学员作品-房地产销售管理系统
  11. 基带传输编码方式HDB3码的快速编码步骤、原理及举例
  12. 【python】短信验证之腾讯云短信验证详细步骤
  13. 骚操作:Mac局域网控制Windows10主机
  14. CSP/CCF计算机职业资格认证题目:[201903-1 小中大]【已解决】
  15. PDF转换成Word转换器在线转换效果如何
  16. C#使用ADO.NET访问数据库
  17. linux基础入门---用户和组管理命令
  18. 中外法律文献查找下载常用数据库大盘点
  19. C/C++获取时间及时间格式转换
  20. 服务器文件管理系统破解版,Cerberus FTP Server Enterprise

热门文章

  1. 35岁,一个尴尬的年纪
  2. 训练时间和参数量百倍降低,直接使用标签进行预测,性能竟超GNN
  3. 卷积神经网络中十大拍案叫绝的操作!
  4. 美多商城之用户登录(账号登录)
  5. CNN模型之SqueezeNet
  6. 美颜算法之自动祛斑算法实现 | 案例分享
  7. Github | NumPy手写全部主流机器学习模型
  8. 暑假想打比赛,小白怎么从0入门?
  9. 实战:OpenVINO+OpenCV 文本检测与识别
  10. 飞行时间(TOF)相机优缺点及其应用领域