当前位置: 首页 > news >正文

EasyExcel实现Excel文件导入导出

1 EasyExcel简介

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

官方文档:https://easyexcel.opensource.alibaba.com/

gitee地址:https://gitee.com/easyexcel/easyexcel

B站学习视频: https://www.bilibili.com/video/BV1Ff4y1U7Qc

Excel解析流程图:


2 EasyExcel使用 

2.1 添加maven依赖

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

2.2 框架工具说明

2.3.1 EasyExcelUtils工具类

/*** 类描述:easyexcel工具类*/
public class EasyExcelUtils<T> extends EasyExcel {/**************************** 导出 ******************************************//*** 导出excel** @param list      导出数据集合* @param sheetName 工作表的名称* @param clazz     实体类* @param response  响应体*/public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response) {try {resetResponse(sheetName, response);ServletOutputStream os = response.getOutputStream();exportExcel(list, sheetName, clazz, false, os);} catch (IOException e) {throw new RuntimeException("导出Excel异常");}}/*** 导出excel** @param list      导出数据集合* @param sheetName 工作表的名称* @param clazz     实体类* @param merge     是否合并单元格* @param os        输出流*/public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge,OutputStream os) {ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz).autoCloseStream(false)// 自动适配.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())// 大数值自动转换 防止失真.registerConverter(new ExcelBigNumberConvert()).sheet(sheetName);if (merge) {// 合并处理器builder.registerWriteHandler(new CellMergeStrategy(list, true));}builder.doWrite(list);}/*** 重置响应体*/private static void resetResponse(String sheetName, HttpServletResponse response) throws UnsupportedEncodingException {String filename = encodingFilename(sheetName);FileUtils.setAttachmentResponseHeader(response, filename);response.setContentType("appl
http://www.lryc.cn/news/587745.html

相关文章:

  • 文心4.5开源之路:引领技术开放新时代!
  • Cannot add property 0, object is not extensible
  • 收集飞花令碎片——VS调试技巧
  • Linux(Ubuntu)硬盘使用情况解析(已房子举例)
  • 中间件部署
  • Ubuntu22.04 python环境管理
  • LabVIEW-Origin 船模数据处理系统
  • ubuntu之坑(十五)——设备树
  • SnapKit介绍与使用
  • EPLAN 电气制图(八):宏应用与变频器控制回路绘制全攻略
  • 基于esp32系列的开源无线dap-link项目使用介绍
  • RocketMQ 5.x初体验
  • Linux 音频的基石: ALSA
  • React 第六十九节 Router中renderMatches的使用详解及注意事项
  • Android 性能优化:启动优化全解析
  • 019_工具集成与外部API调用
  • LabVIEW浏览器ActiveX事件交互
  • SpringMVC1
  • 数字孪生技术引领UI前端设计新潮流:智能交互界面的个性化定制
  • 【Linux系统】进程切换 | 进程调度——O(1)调度队列
  • RxSwift的介绍与使用
  • Android展示加载PDF
  • SAP ERP与微软ERP dynamics对比,两款云ERP产品有什么区别?
  • ETF期权的涨跌策略是什么?
  • vue3 JavaScript 数据累加 reduce
  • Jetpack Compose 重组陷阱:一个“乌龙”带来的启示
  • 数字孪生技术驱动UI前端革新:实现产品设计的虚拟仿真与实时反馈
  • SpringMVC3
  • 计算机毕业设计Java轩辕购物商城管理系统 基于 SpringBoot 的轩辕电商商城管理系统 Java 轩辕购物平台管理系统设计与实现
  • CICS Application Programming Fundamentals 第4章