房屋设计网站有哪些,搜狗联盟,最新成都双流区娱乐场所关闭,携永东方 wordpress目录
简介
FastExcel的特点
FastExcel使用方法详解
创建实体类和监听器
实现写入和读取功能
Excel转换为PDF
小结
FastExcel与EasyExcel的区别
结论 简介
FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有…目录
简介
FastExcel的特点
FastExcel使用方法详解
创建实体类和监听器
实现写入和读取功能
Excel转换为PDF
小结
FastExcel与EasyExcel的区别
结论 简介
FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有优点并且在性能和功能上进行了显著的提升和创新。
FastExcel的特点
高性能读写 FastExcel专注于性能优化能够高效处理大规模的Excel数据显著降低内存占用。简单易用 提供了简洁直观的API使得开发者可以轻松集成到项目中无论是简单的Excel操作还是复杂的数据处理都能快速上手。流式操作 支持流式读取将一次性加载大量数据的问题降到最低特别适合处理数十万甚至上百万行的数据。完全兼容 完全兼容原EasyExcel的所有功能和特性用户可以无缝过渡。持续更新 FastExcel会持续更新修复bug优化性能增加新功能。
FastExcel使用方法详解
创建实体类和监听器
创建实体类
在使用FastExcel进行Excel文件的读写操作之前需要定义一个实体类该类中的每个属性对应Excel中的一列。使用ExcelProperty注解来指定列名。
import cn.idev.excel.annotation.ExcelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;Setter
Getter
ToString
public class User {ExcelProperty(编号)private Integer id;ExcelProperty(名字)private String name;ExcelProperty(年龄)private Integer age;
}
创建事件监听器
FastExcel通过事件监听器实现Excel文件的逐行读取这对于处理大文件尤为重要因为它可以避免内存溢出的问题。下面是一个事件监听器的示例它在读取每行数据时将数据添加到列表中并在所有数据读取完成后执行一些操作。
import cn.idev.excel.context.AnalysisContext;
import cn.idev.excel.event.AnalysisEventListener;
import java.util.ArrayList;
import java.util.List;public class BaseExcelListenerT extends AnalysisEventListenerT {private ListT dataList new ArrayList();Overridepublic void invoke(T t, AnalysisContext analysisContext) {dataList.add(t);}Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {System.out.println(读取完成共读取了 dataList.size() 条数据);}public ListT getDataList() {return dataList;}
}
实现写入和读取功能
Excel写入功能
以下是使用FastExcel进行Excel写入的示例代码。首先创建测试数据然后通过FastExcel.write方法将数据写入到Excel文件中。
// Excel写入功能
GetMapping(/download)
public void download(HttpServletResponse response) throws IOException {response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setCharacterEncoding(utf-8);String fileName URLEncoder.encode(test, UTF-8);response.setHeader(Content-disposition,attachment;filename*utf-8 fileName .xlsx);// 写入数据FastExcel.write(response.getOutputStream(), User.class).sheet(模板).doWrite(buildData());
}// 创建测试数据
private ListUser buildData() {User user1 new User();user1.setId(1);user1.setName(张三);user1.setAge(18);User user2 new User();user2.setId(2);user2.setName(李四);user2.setAge(19);return List.of(user1, user2);
}
Excel读取功能
以下是使用FastExcel进行Excel读取的示例代码。通过FastExcel.read方法读取Excel文件并使用之前创建的监听器来处理读取到的数据。
// Excel读取功能
PostMapping(/upload)
public ResponseEntityString upload(RequestParam(file) MultipartFile file) {if (file.isEmpty()) {return ResponseEntity.badRequest().body(请选择一个文件上传);}try {BaseExcelListenerUser baseExcelListener new BaseExcelListener();FastExcel.read(file.getInputStream(), User.class, baseExcelListener).sheet().doRead();ListUser dataList baseExcelListener.getDataList();System.out.println(dataList);return ResponseEntity.ok(文件上传并处理成功);} catch (IOException e) {return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(文件处理失败);}
}
Excel转换为PDF
FastExcel还支持将Excel文件转换为PDF文件这一功能底层依赖于Apache POI和itext-pdf。请注意使用itext-pdf时需要确保符合其许可证要求。
FastExcel.convertToPdf(new File(excelFile),new File(pdfFile),null,null);
小结
FastExcel作为一个高效且易于使用的Excel处理工具不仅继承了EasyExcel的所有优点还在此基础上进行了性能和功能的增强。
通过上述示例我们可以看到FastExcel如何简化Excel文件的读写操作以及如何通过事件监听器实现流式处理从而有效管理内存使用。无论是企业数据导入导出还是个人项目开发FastExcel都能提供强大的支持。
FastExcel与EasyExcel的区别
性能提升 FastExcel在性能上比EasyExcel更好更稳定。API一致性 FastExcel与EasyExcel的API完全一致可以无缝切换。功能增加 FastExcel 1.0.0版本新增了读取Excel指定行数和将Excel转换为PDF的功能。
结论
FastExcel作为一个轻量级但功能强大的Java库专为需要高性能和低内存占用的Excel文件处理而设计。如果您的项目需要处理大规模的Excel数据FastExcel无疑是一个值得考虑的选择。其流式处理和灵活的API使其成为处理Excel文件的理想工具。 觉得有用的话可以点点赞 (*/ω*)支持一下。
如果愿意的话关注一下。会对你有更多的帮助。
每天都会不定时更新哦 人 。