阿里easyExcel(导出)学习笔记(maven)

背景

生成Excel比较有名的框架有poi和jxl。这两个方法有一个严重的问题就是非常消耗内存。虽然poi有一些api可以在一定程度上解决一些内存溢出的问题。但是poi在操作07版excel的解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyExcel 重写了 poi 对 07 版 Excel 的解析,使原本需要 100M 左右内存解析一个 3M 的 excel,降低到 KB 级别,并且再大的 excel 不会出现内存溢出,03 版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。

编码

  1. 加入依赖(1.0以内的版本有点bug。建议使用1.1以上版本)

  2. 需导出Excel的实体类继承BaseRowModel并在属性上加入@ExcelProperty(value=“id”,index=0)标签。其中:value所代表的为列名,index指的是第几列(如不想使用注解的方式生成表头,可在编码时,生成table对象,使用table.setHead(String[] titles))。例:

    1. 使用注解生成表头的方式
      2) 使用table生成表头的示例:
  3. easyExcel操作Excel的api使用示例

    1. 创建输出至目标文件的输出流
    2. 创建ExcelWriter对象(写入数据至目标Excel文件的操作对象),传入输出流和所需输出excel的格 式(.xls和.xlsx两种。通常建议使用.xlsx,.xls会有点问题),第三个参数为可选参数boolean型:是否需要表头,如不需要,可填false,此时即使使用注解指定表头也不会显示,此值默认为true。
    3. 创建sheet页(其中Trade为自己创建的model对象,如果不采用注解生成表头的方式,此时只有两个参数)如下所示:(四个参数,第一个表示这个是excel文档里面的第几个子表(sheet),第二个参数还不了解,第三个参数可不写,表示如果有实体类对应的时候应该是哪个类。第四个表示输入表头,可以不写。只是用前面的两个参数就行)
      a) 采用注解生成表头

      b) 采用table对象生成表头。需生成sheet之后,加入生成table的方式。详情见2->2)。
    4. 写入Excel,关闭流(其中list为需要导出的数据集合,第二个参数为需要为哪个sheet导出数据,第三个参数可选,传入table,如果没有定义table,可不写)
  4. 如需复杂表头,请做如下修改
    只需更改实体属性中@ExcelProperty标签的value值即可,例:
    所以此示例为"表头1"占第一和第二列的两行。实现效果如下:

    参考:参考链接

阿里easyExcel学习笔记(maven)相关推荐

  1. 阿里云学习笔记——设置规则引擎(2)

    标题阿里云学习笔记--设置规则引擎(2) 下面是我自己作为学习笔记分享,大神勿喷,如有叙述错误的地方欢迎指正. 1.定义Topic 定义了p_data和s_data 2.创建规则引擎,这里创建了APP ...

  2. EasyExcel 学习笔记 - 读Excel

    EasyExcel 学习笔记 - 读Excel pom.xml 添加依赖 测试数据 实体类 自定义转换器 最简单的读 写法1 写法2 写法3 写法4 多行头(跳过N行) 读多个sheet 读全部 sh ...

  3. 阿里VLayout学习笔记(Kotlin)

    阿里VLayout学习笔记(Kotlin) 文章目录 阿里VLayout学习笔记(Kotlin) VLayout中LayoutHelper分类(辅助Adapter实现RecyclerView的Item ...

  4. EasyExcel学习笔记——本地excel的导入导出、Web端excel的导入导出

    EasyExcel学习笔记 EasyExcel 用于 Java解析.生成Excel,是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. 官方 ...

  5. EasyExcel学习笔记

    一.初识EasyExcel 1. Apache POI 有过报表导入导出经验的同学,应该有听说或使用过POI. Apache POI是Apache软件基金会的开源函式库,提供跨平台的Java API实 ...

  6. 超详细讲解!2579页阿里P8Android学习笔记在互联网上火了,完整版开放下载

    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...

  7. MAVEN学习笔记-maven的获取和安装

    windows下maven的安装步骤:      1.下载压缩包http://maven.apache.org/download.cgi选择apache-maven-3.3.9-bin.zip下载   ...

  8. 学习笔记——Maven pom.xml配置详解

    POM的全称是"ProjectObjectModel(项目对象模型)". pom.xml详解 声明规范 <projectxmlns="http://maven.ap ...

  9. 阿里DTS 学习笔记

    一.DTS是什么 DTS(Data Transmission Service, 数据传输服务),用于在关系型数据库.NoSQL数据库.数据仓库之间迁移数据. 可以使用DTS将数据迁移至阿里云,也可以在 ...

  10. 【阿里云学习笔记】快速搭建网站

    在ECS服务器上,执行以下命令安装Apache及其扩展包,run命令 yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql ...

最新文章

  1. 技术:常见视频会议网络线路介绍
  2. Android .classpath文件的作用
  3. Qt学习笔记之UDP编程
  4. 前端框架Vue、angular、React的优点和缺点,以及应用场景
  5. LwIP Application Developers Manual9---LwIP and multithreading
  6. Windows Server 2012 存储 (三)SMB 的高可用性
  7. 《信息处理技术员考试考前冲刺预测卷及考点解析》下午案例复习重点
  8. 无需插拔网线,解决一台电脑同时上内外网的难题
  9. 计算机创业计划书800字大全,大学生创业计划书800字左右.docx
  10. 【老生谈算法】matlab实现遗传算法改进的模糊C-均值聚类算法源码——C-均值聚类算法
  11. matlab中带脚咪头怎么找,咪头用万能表怎么测_咪头怎么辨认正负极
  12. 谁说NTFS不支持UEFI启动的?启动U盘放不了超过4G的文件怎么办?Server2016 Win10 U盘UEFI启动制作方法...
  13. python开发环境android版_Android NDK开发环境安装(OK版)
  14. FPGA - Zynq - 加载 - BootRom
  15. 青少年机器人编程大赛用什么语言
  16. cuda必须装在c盘吗_软件安装到C盘会影响计算机运行速度吗?一个问题引发的思考...
  17. OS-机械硬盘的磁盘初始化
  18. PHP常用第三方包,php第三方包管理
  19. 某同步总线的时钟频率为100MHz,宽度为32位,地址/数据线复用,每传输一个地址或者数据就占用一个时钟周期。该总线支持猝发传输方式,则一次“主存写”总线事务传输128位数据所需的时间至少是
  20. springboot毕设项目学生成绩管理系统o8mkp(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 通过IP地址进行精准定位
  2. 如何进行软件技术管理?
  3. 个性推荐①——系统总结个性化推荐系统
  4. Mat和IplImage
  5. 制作一个免费的Wi-Fi二维码原来这么简单
  6. format mla_MLA-Format-MLA格式
  7. printf输出格式化
  8. 用Python全自动下载抖音视频!
  9. 网络七层协议的通俗理解
  10. XUI 熟练使用之(一) ----------- 将 XUI 引入项目