EasyExcel基本使用

官网地址: EasyExcel

本文代码: EasyExcelDemo

​ 在开发中Excel的导入导出是非常常见的需求,最近在项目中用到了阿里的EasyExcel,简单学习下,还是比较容易上手的。下面记录下

EasyExcel介绍

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.2</version>
</dependency>

导出

例如现在要导出如下Excel:

在这里插入图片描述

使用模型导出

使用模型导出时,EasyExcel会根据导出实体中 @ExcelProperty注解生成表头

  • 模型注解说明
@HeadRowHeight:设置表头高度,作用域在类
@ExcelIgnoreUnannotated:忽略没有注解标记的字段,作用域在类
@ExcelIgnore:忽略指定的字段,作用域在字段
@ExcelProperty:指定导出列名和索引,作用域在字段
@ColumnWidth:设置列的宽度,作用域在字段
@NumberFormat:设置数值精度,作用域在字段,例:@NumberFormat(value = "#.00")
@DateTimeFormat:格式化日期,作用域在字段,例:@DateTimeFormat(value = "yyyy-MM-dd")
  • 建立模型
@Data
@NoArgsConstructor
@AllArgsConstructor
@ColumnWidth(15)   // 设置列宽
public class ExcelDemoDto {
   
    @ExcelProperty("字符串测试1")
    private String column1;

    @ExcelProperty("字符串测试2")
    private String column2;

    @ExcelProperty("数字测试")
    private BigDecimal number;

    @ExcelProperty("日期测试")
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date date;
}
  • 导出实现
public void easyWrite(HttpServletResponse response) throws IOException {
   
    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode防止中文乱码
    String fileName = URLEncoder.encode("导出", "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
    ServletOutputStream outputStream = response.getOutputStream();
    // 获取导出数据
    List<ExcelDemoDto> exportData = new ArrayList<>();
    ExcelDemoDto excelDemoDto = new ExcelDemoDto("zjm","520", BigDecimal.valueOf(20),new Date());
    exportData.add(excelDemoDto);
    // 初始化ExcelWriter
    ExcelWriter writer = EasyExcel.write(outputStream).build();
    // 初始化一个sheet
    WriteSheet sheet1 = EasyExcel.writerSheet(0, "sheet1")
        .head(ExcelDemoDto.class)
        .registerWriteH
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EasyExcel是一个Java操作Excel文件的工具库,它基于Apache POI实现。它提供了简单易用的方法来读取、写入和处理Excel文件。下面是EasyExcel基本教程: 1. 添加EasyExcel依赖:首先,在你的项目中添加EasyExcel的依赖。可以在你的项目的pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.12</version> </dependency> ``` 2. 读取Excel文件:使用EasyExcel可以简单地读取Excel文件的内容。通过`read`方法可以读取Excel中的数据并将其映射到Java对象中。以下是一个简单的读取示例: ```java String fileName = "path/to/excel.xlsx"; List<Object> data = EasyExcel.read(fileName).sheet().doReadSync(); ``` 3. 写入Excel文件:使用EasyExcel可以将数据写入Excel文件中。通过`write`方法可以将Java对象的数据写入到Excel文件中。以下是一个简单的写入示例: ```java String fileName = "path/to/excel.xlsx"; List<Object> data = new ArrayList<>(); // 填充数据 EasyExcel.write(fileName).sheet().doWrite(data); ``` 4. 调整行高、列宽和样式:EasyExcel提供了方法来调整Excel文件中的行高、列宽和样式。你可以使用`setXXX`方法来设置行高、列宽、背景色、字体大小等样式。以下是一个示例: ```java TableStyle style = new TableStyle(); // 创建样式对象 style.setTableContentBackGroundColor(IndexedColors.WHITE); // 设置表格内容的背景色为白色 style.setTableContentFontName("Arial"); // 设置表格内容的字体为Arial style.setTableContentFontSize(12); // 设置表格内容的字体大小为12 WriteSheet sheet = EasyExcel.writerSheet().build(); // 创建Sheet对象 sheet.setTableStyle(style); // 设置Sheet的样式 EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doWrite(data); ``` 需要注意的是,EasyExcel的控制方式与使用原生POI类似,但相对来说更加简洁易用。另外,EasyExcel能够处理大文件时,会减少内存消耗,并且不容易发生内存溢出的情况。 总结一下,EasyExcel是一个方便易用的Java操作Excel文件的工具库,它提供了简单的读取和写入方法,并且支持调整行高、列宽和样式。它基于Apache POI实现,并且能够处理大文件时减少内存消耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值