您的位置:首页 > 健康 > 养生 > EasyPoi库的使用

EasyPoi库的使用

2024/10/6 12:19:50 来源:https://blog.csdn.net/weixin_42564451/article/details/141723752  浏览:    关键词:EasyPoi库的使用

EasyPoi库

      • 1. 环境准备
      • 2. 快速入门
        • 2.1 导出Excel
        • 2.2 导入Excel
      • 3. 进阶使用
        • 3.1 自定义样式
        • 3.2 复杂的数据映射
        • 3.3 数据校验
      • 4. 性能优化

EasyPoi 是一个用于处理 Excel 文件的 Java 库,它简化了 Excel 文件的读写操作,尤其适合用于导出大量数据或者复杂的表格格式。它基于Apache POI,但通过简化代码和提供更高级的功能,使得Excel读写变得更加快捷和高效。

1. 环境准备

首先需要在 Maven 项目中引入 EasyPoi 的依赖。打开 pom.xml 文件,添加以下依赖:

<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.0</version>
</dependency>
<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.1.0</version>
</dependency>
<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-excel</artifactId><version>4.1.0</version>
</dependency>

2. 快速入门

2.1 导出Excel

创建一个简单的 POJO 类(如 Student),然后使用 EasyPoi 将其列表导出为 Excel 文件。

public class Student {private String name;private int age;// Getters and Setters
}

导出方法:

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;import java.util.List;public class ExcelExport {public static void export(List<Student> students) {// 设置导出Excel的标题和sheet名ExportParams exportParams = new ExportParams("学生信息", "学生");// 导出ExcelList<List<String>> data = students.stream().map(student -> Arrays.asList(student.getName(), student.getAge() + "")).collect(Collectors.toList());HSSFWorkbook wb = ExcelExportUtil.exportExcel(exportParams, String.class, data);// 输出到前端或者保存到文件}
}
2.2 导入Excel

导入 Excel 文件并将其转换成 Student 对象列表。

import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;public class ExcelImport {public static List<Student> importExcel(MultipartFile file) throws Exception {ImportParams params = new ImportParams();List<Student> students = ExcelImportUtil.importExcel(file.getInputStream(), Student.class, params);return students;}
}

3. 进阶使用

3.1 自定义样式

使用 EasyPoi 自定义 Excel 文件的样式,包括但不限于字体、背景色和边框。

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;// 创建样式
CellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);// 应用样式
ExportParams exportParams = new ExportParams("学生信息", "学生");
exportParams.setStyle(style);
HSSFWorkbook wb = ExcelExportUtil.exportExcel(exportParams, String.class, data);
3.2 复杂的数据映射

当 Excel 文件中的列和 Java 对象的属性不完全匹配时,可以使用注解来指定映射关系。

import cn.afterturn.easypoi.excel.annotation.Excel;public class Student {@Excel(name = "姓名")private String name;@Excel(name = "年龄", orderNum = "1")private int age;// Getters and Setters
}
3.3 数据校验

在导入数据时,可以设置验证规则来确保数据的准确性。

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandler;
import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandlerResult;@ExcelTarget("student")
public class Student implements IExcelDataModel {@Excel(name = "姓名")private String name;@Excel(name = "年龄", orderNum = "1", needVerify = true, verifyHandler = AgeVerifyHandler.class)private int age;public static class AgeVerifyHandler implements IExcelVerifyHandler {@Overridepublic boolean verify(IExcelVerifyHandlerResult result) {return result.getInt() > 0 && result.getInt() <= 100;}}// Getters and Setters
}

4. 性能优化

对于大数据量的导出,可以使用 EasyPoi 提供的分页导出功能来提高性能。

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.result.ExcelExportResult;
import cn.afterturn.easypoi.handler.inter.IExcelDataHandler;public class ExcelExport {public static ExcelExportResult exportLargeData(IExcelDataHandler<Student> handler) {ExportParams exportParams = new ExportParams("学生信息", "学生");ExcelExportResult result = ExcelExportUtil.exportExcelByPage(exportParams, Student.class, handler);return result;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com