MyGit

gaoice/easyexcel

Fork: 7 Star: 8 (更新于 1970-01-01 00:00:00)

license: Apache-2.0

Language: Java .

几行代码快速生成/读取 Excel 文件,非侵入式设计

最后发布版本: v1.0 ( 2020-02-19 11:48:16)

GitHub网址

easyexcel

概述

采用极简设计的 Excel 生成和读取工具,几行代码即可把 List 集合生成为 Excel 或者从 Excel 读取为 List 集合。

使用

Maven

<dependency>
    <groupId>com.gaoice</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.0</version>
</dependency>

Starter

现在可以在 Spring Boot 中快速使用:easyexcel-spring-boot-starter

新版本

示例

实体类:

Student{name, idcard, gender, ...}

写 Excel

生成 SXSSFWorkbook

String[] classFieldNames = {"name", "idcard", "gender", ...};
SXSSFWorkbook workbook = ExcelWriter.createWorkbook(new SheetInfo(classFieldNames, studentList));

web 下直接写入 HttpServletResponseOutputStream 中:

ExcelWriter.writeOutputStream(new SheetInfo(classFieldNames, studentList), response.getOutputStream());

如果 gender 字段是int类型的,我们可以为 gender 字段添加一个 FieldValueConverter(Lambda表达式)在构建 Excel 时转换为中文:

sheetInfo.putFieldHandler("gender", (FieldValueConverter<Integer>) value -> 
                          value == null ? null : value.equals(1) ? "男生" : "女生");

完整的使用方法示例详见 ExcelWriterTests.java

读 Excel

简单的读取为 List<Map>

List<Map<Integer, Object>> result = ExcelReader.parseList("example.xlsx");

映射为 List<Student>

BeanConfig<Student> beanConfig = new BeanConfig<Student>().setTargetClass(Student.class)
        .setFieldNames(new String[]{"name", "idcard", "gender", ...});

List<Student> result = ExcelReader.parseList("example.xlsx", beanConfig);

为 gender 字段设置转换器,把中文映射为实体类的 Integer 类型:

beanConfig.putConverter("gender", context ->
                context.getStringValue() == null ? null : ("男生".equals(context.getStringValue()) ? 1 : 0));

完整的使用方法示例详见 ExcelReaderTests.java

最近版本更新:(数据更新于 1970-01-01 00:00:00)

2020-02-19 11:48:16 v1.0

gaoice/easyexcel同语言 Java最近更新仓库

2024-12-20 19:54:15 mybatis-flex/mybatis-flex

2024-12-19 21:53:46 spring-projects/spring-boot

2024-12-19 21:25:16 Stirling-Tools/Stirling-PDF

2024-12-19 16:28:14 Tornaco/Thanox

2024-12-19 10:42:01 alibaba/nacos

2024-12-18 20:58:34 dromara/forest