1.首先要创建一个OutputStream流,保证能够读到文件,
             OutputStream out = new FileOutputStream(" filepath");
2.创建写excel表格的类对象
//第三个参数,表示是不是需要表头,如果是false就不会显示,即使在注解里用了@ExcelProperty中的value//true或者省略表示可以添加进去表头//使用xlsx比较好,用的时候使用xls有点问题  ExcelWriter writer  =  new ExcelWriter( out , ExcelTypeEnum.XLSX , false );
3.创建一个表格Sheet
        Sheet sheet = new Sheet(1,0, Admin.class , null );四个参数,第一个表示这个是excel文档里面的第几个子表,第二个参数还不了解,第三个参数可不写,表示如果有实体类对应的时候应该是哪个类。第四个表示输入表头,可以不写。只是用前面的两个参数就行

如果有多个sheet就创建多个就行,

4.如果一个sheet有多个表格的话就使用Table
    Table table = new Table(1); 参数表示这是第几个表格如果表格的参数不是List<String> 那么就要设置 Clazztable.setClazz(Admin.class);
5.输入到excel文档里面

如果有多个table

如果有实体类的情况writer.write( list , sheet , table );第一个参数要求是list<E>,如果是List<\ String>  ,,list的格式就是 List<List<String>> 外面的list表示行,里面的表示列writer.write0( list , sheet , table );

如果没有table ,就把第三个参数省掉

多个sheet就写多个write方法,注意书写的顺序很重要

6.最后关闭writer和out
   writer.finish()out.close()

//以上代码会用到try catch

7.实体类

需要继承BaseRowModel, value表示的是表头,前面说的如果是true就能输入
index表示是第几列。从0开始

public class ExcelPropertyIndexModel extends BaseRowModel {@ExcelProperty(value = "姓名" ,index = 0)private String name;@ExcelProperty(value = "年龄",index = 1)private String age;@ExcelProperty(value = "邮箱",index = 2)private String email;@ExcelProperty(value = "地址",index = 3)private String address;@ExcelProperty(value = "性别",index = 4)private String sax;@ExcelProperty(value = "高度",index = 5)private String heigh;@ExcelProperty(value = "备注",index = 6)private String last;
}

每行数据是一个java模型有表头----表头层级为多层级
public class MultiLineHeadExcelModel extends BaseRowModel {@ExcelProperty(value = {"表头1","表头1","表头31"},index = 0)private String p1;@ExcelProperty(value = {"表头1","表头1","表头32"},index = 1)private String p2;@ExcelProperty(value = {"表头3","表头3","表头3"},index = 2)private int p3;@ExcelProperty(value = {"表头4","表头4","表头4"},index = 3)private long p4;@ExcelProperty(value = {"表头5","表头51","表头52"},index = 4)private String p5;@ExcelProperty(value = {"表头6","表头61","表头611"},index = 5)private String p6;@ExcelProperty(value = {"表头6","表头61","表头612"},index = 6)private String p7;@ExcelProperty(value = {"表头6","表头62","表头621"},index = 7)private String p8;@ExcelProperty(value = {"表头6","表头62","表头622"},index = 8)private String p9;
}

效果如下,大括号里面的每一个都占一行,如果重复,这个表头占两行,如果类似于p1 ,p2那种 表头31 和 表头32 各占一列,表头1 占2列

EasyExcel写excel的理解相关推荐

  1. EasyExcel · 写excel

    原文地址 通用数据生成 后面不会重复写 private List<DemoData> data() {List<DemoData> list = ListUtils.newAr ...

  2. easyExcel实战:(三)easyExcel写Excel的解读

    每行数据是List<String>无表头 OutputStream out = new FileOutputStream("/Users/jipengfei/77.xlsx&qu ...

  3. EasyExcel详解-写Excel

    一.注解 使用注解很简单,只要在对应的实体类上面加上注解即可. ExcelProperty 用于匹配excel和实体类的匹配,参数如下: 名称 默认值 描述 value 空 用于匹配excel中的头, ...

  4. EasyExcel使用总结(一):写Excel

    说明 最近有很多数据要处理,需要导出Excel表格.在使用POI时发现非常耗内存,在GitHub上发现阿里开源的Easy Excel项目,基于java的读写Excel,十分省内存.本篇博文主要是总结记 ...

  5. 使用Easyexcel对Excel进行读写操作

    1.概述 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址:GitHub - alibaba/easy ...

  6. SpringBoot中使用Easyexcel实现Excel导入导出功能(三)

    导出的数据包含有图片 导出excel表格的数据包含有图片,这种场景比较少.通Easyexcel实现这样的需求,我认为最简便的方法就是使用前面提到的自定义转换器(com.alibaba.excel.co ...

  7. Java使用EasyExcel导出Excel

    功能背景 简单的说下这个功能的背景需求吧,有类似需求的可以复用,果然导入还没写完,导出的功能接踵而来,一块写了吧 实现excel导出(依旧废话-) 多个sheet页一起导出 第一个sheet页数据表头 ...

  8. SpringBoot中使用Easyexcel实现Excel导入导出功能(一)

    目录 前言 1.常规导入 2.读取到指定的列 3.读取全部的sheet页 4.日期.数字及其他自定义格式的转换 5.表头有多行的表格读取 6.表头数据的读取 7.单元格内的备注内容读取 前言 exce ...

  9. EasyExcel实现Excel文件导入导出功能

    一.EasyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的话可能还行,但是一旦并发 ...

最新文章

  1. ***检测与防护(IDS/IPS)
  2. excel工具栏隐藏了怎么办_真正的EXCEL隐藏技巧来啦!这5个你都会吗?
  3. python推荐系统-利用python构建一个简单的推荐系统
  4. facebook有哪些信息_关于Facebook表情表情符号的所有信息
  5. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)
  6. 保存hbitmap到文件
  7. LeetCode 1161. 最大层内元素和(层序遍历)
  8. linux调度程序是根据进程的动态优先级还是静态优先级来调度进程的,LINUX内核面试题...
  9. 字符串型String
  10. HBase MemStore和Compaction剖析
  11. 期权定价公式的推导(欧式)
  12. 护理自考本科科目计算机应用基础,护理自考本科考哪些科目
  13. 如何更改ORCAD中的page number ?
  14. uniapp 实现抽奖幸运大转盘功能
  15. Quartus-ii的LPT1编程硬件配置问题
  16. swal如何加入html语言,前端基础(九):SweetAlert(弹出框)
  17. 逍遥安卓 出现android,解决逍遥安卓模拟器一直卡在99%的方法
  18. Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘ 错误
  19. Event 对象--target 事件属性
  20. preg_match 函数使用及正则表达式各种示例

热门文章

  1. 中青cookie中青ck提取
  2. 鹏业安装算量软件操作按钮之图纸缩放与图元操作
  3. js uniapp开发如何把分钟数转换为多少小时多少分钟
  4. python爬取steam250游戏详细信息和下载游戏介绍视频
  5. 对于初学PS的你来说一定要注意的13个坏习惯!!
  6. AWR的Snapshots讲解
  7. 电脑白屏 结束explorer.exe进程
  8. ColorFinale Pro for mac(FCPX插件:专业分级调色插件)
  9. 代码详解:用Python给你喜欢的音乐分个类吧
  10. springmvc结合thymeleaf的使用(项目搭建)