基与easyExcel实现excel模版导出

阿里出品Excel工具EasyExcel使用小结 前提# 笔者做小数据和零号提数工具人已经有一段时间,服务的对象是运营和商务的大佬,一般要求导出的数据是Excel文件,考虑到初创团队机器资源十分有限的前提下,选用了阿里出品的Excel工具EasyExcel。这里简单分享一下EasyExcel的使用心得。EasyExcel从其依赖树来看是对apache-poi的封装,笔者从开始接触Excel处理就选用了EasyExcel,避免了广泛流传的apache-poi导致的内存泄漏问题。 引入EasyExcel依赖# 引入EasyExcel的Maven如下: 阅读详情

Easyexcel官方文档

excel模版位置:

模版数据填充处理:{.对应的实体对象字段名}

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

 直接上代码:

  public void export(HttpServletResponse response) throws IOException {
        List<CustomerComplaintDetailVO> customerComplaintCategoryVOList = DataTransformer.transform(customerComplaintService.selectCustomerComplaintDetailList(), CustomerComplaintDetailVO.class);
        if (CollectionUtils.isEmpty(customerComplaintCategoryVOList)) {
            throw new BusinessException("无可用数据,导出失败");
        }
        Resource resource = new ClassPathResource("template/客诉单导出模版.xlsx");
        String templatePath = resource.getFile().getPath();
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // URLEncoder.encode防止中文乱码
        String fileName = URLEncoder.encode("客诉单明细", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(templatePath).build();
        WriteSheet writeSheet = EasyExcel.writerSheet().build();
        excelWriter.fill(customerComplaintCategoryVOList, writeSheet);
        // 关闭流
        excelWriter.finish();

该写法本地一点问题没有,放到服务器上,前端请求,报:找不到模版文件

经过一些了解,jar包的resource的位置发生改变,优化方案:

    public void export(HttpServletResponse response) throws IOException {
        List<CustomerComplaintDetailVO> customerComplaintCategoryVOList = DataTransformer.transform(customerComplaintService.selectCustomerComplaintDetailList(), CustomerComplaintDetailVO.class);
        if (CollectionUtils.isEmpty(customerComplaintCategoryVOList)) {
            throw new BusinessException("无可用数据,导出失败");
        }
        InputStream inputStream = ClassPathResource.class.getClassLoader().getResourceAsStream("template/客诉单导出模版.xlsx");
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // URLEncoder.encode防止中文乱码
        String fileName = URLEncoder.encode("客诉单明细", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).build();
//        ExcelWriter excelWriter = EasyExcel.write("D:/Users/wsh/Desktop/客诉单导出模版.xlsx").withTemplate(inputStream).build();
        WriteSheet writeSheet = EasyExcel.writerSheet().build();
        excelWriter.fill(customerComplaintCategoryVOList, writeSheet);
        // 关闭流
        excelWriter.finish();

最终结果

多场景easyExcel导出excel文件(一) 使用easyExcel导出excel文件,包括多级表头,多种实现方式,没有表头的动态值,导出图片和超链接和批注和公式,设置单元格和字体样式,导出多sheet,合并单元格,使用table表头,动态表头等场景, 阅读详情

相关推荐

java之poi 使用 easyexcel 实现Excel 批量导入导出

本章提供了java使用阿里的easyexcel实现Excel导入,导出示例,还有网络下载的方法。 模板大家可以随意制作,本例中使用模板表头及数据已经截图,以供参考。 easyexcel背景: Java解析,生成Excel比较有名的框架有Apache poi,jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一...

古小龙 2万+

使用EasyExcel实现excel导出,支持百万大数据量导出-----超简单

超简单的EasyExcel实现excel导出,支持百万大数据量导出,通过设置sheet数量,完成分批导出,每个sheet存100万数据,每次查询插入20万数据,避免超时,内存溢出等问题,可以根据服务器配置调整参数设置。

MCP的博客 1万+

EasyExcel: 高效处理Excel的现代Java库

EasyExcel是一款现代化的Java库,专注于高效处理Excel文件。在传统的Java中,处理Excel文件通常使用Apache POI等库,但这些库存在着一些性能和内存方面的问题。EasyExcel应运而生,旨在解决这些问题并提供更好的用户体验。

fudaihb的博客 7752

luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充

前端使用在线LuckySheet配置一个模版Excel 后端实现使用配置的模版进行数据填充并导出官方文档:https://mengshukeji.gitee.io/luckysheetdocs/zh/官方文档:https://easyexcel.opensource.alibaba.com/ 后端需要引入poi和easyExcel的相关依赖 依赖示例:Gradle版本 前端luckySheet配置的excel模版Json获取以及后端解析 前端Json示例: 此模版在luckySheet中配置,存到后

Glory_yang的博客 6250

easyExcel - 按模板导出

之前有介绍过如何使用easyExcel,以及写了两个入门的demo,这两个demo能应付在开发中大多数的导入和导出需求,不过有时候面对一些复杂的表格,就会有点不够用,该篇是如何使用模板实现导出功能在实际的开发过程中可能会遇到需要导出一些带有复杂表头的表格,比如:工资表和考勤表或者是类似于发票、报价单这种具有模板性质的表格如果仅仅通过代码去实现是比较困难的,通常情况下会写一个模板excel,模板中的需要变动的数据用占位符替代,导出的文件按照该模板填充数据easyexcel① 读取模板文件。

xhmico的博客 2万+

Android11,无障碍服务模拟多手势使用dispatchGesture时总是onCancelled

AccessibilityService的dispatchGesture去模拟多手势,总是onCancelled的一种解决办法

m0_49953943的博客 2103

EasyExcel工具通过模版导出EXCEL文件实现-3.3.4

上面代码返回是文件流下载,前端代码需要接收到流并下载。前提:java项目中引入easyexcel依赖包。

weixin_39048904的博客 271

python123题目——摩尔斯电码转换

类型:列表元组。

m0_62488776的博客 4420

【EasyExcel】Java利用EasyExcel生成excel(并导入数据)

一、需求: 下载列表(支持筛选)所有数据,并生成excel文件 二、实现思路: 由于数据量的原因,使用到了es 通过es数据筛选完之后,将数据全部取出,然后转转easyExcel格式的List数据,写入到excel,返回成流。 三、代码: Controller层 @ApiOperation(value = "download", notes = "download") @GetMapping("/download") public void downloa...

欢迎来到 程序猿 的博客 5905

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1462

YOLOv8n行人检测实战:从数据集准备到模型训练

本文详细介绍了使用YOLOv8n进行行人检测的完整流程。首先阐述了YOLOv8的优势:高速推理(300+FPS)、更高精度、易用性和轻量化(仅6MB)。接着通过Docker搭建GPU训练环境,配置32GB共享内存避免数据加载问题,并安装必要的框架和OpenCV组件。数据集采用COCO2017标注格式,包含归一化坐标的YOLO标签文件。通过可视化脚本验证标注准确性后,提出多数据集融合训练策略以增强模型泛化能力。最后使用Ultralytics框架启动训练,展现了从环境搭建到模型训练的完整技术路径。该方案兼顾检测

Hi20240217的博客 1092

Alibaba easyExcel对Excel操作之复杂标题处理

easyExcle对poi进行二次封装优化,对外提供了更加方便的接入方式,如果对导出Excle的标题有比较复杂的业务需求,那么就要用到官方提供的2中方式(模版填充、自定义标题),如果自定义标题也不能满足我们的需求,例如我们需要在标题中切入图片需求,要么采用第一种比较简单的模版填充方式,但是如果你不想使用模版的方式,倾向于使用java代码来实现,那么本文可能对你有所帮助,我们采用自定义标题加上拦截器。 业务说明,根据业务需要我们需要生成如下截图的excel文件 对导出文件进行分析: 1、第一行合并单

哆啦A梦 5114

车载LIN总线避坑指南:主从节点通信失败的5个常见原因及解决方案

本文深度解析车载LIN总线主从节点通信失败的五大常见原因,涵盖物理层信号异常、调度表冲突、LDF配置错误、节点状态机缺陷及环境干扰。重点剖析了LDF文件配置不一致、波特率不匹配等关键问题,并提供了从示波器波形分析到软件配置检查的完整实战排查路径,帮助工程师高效定位并解决LIN通信故障。

g9h0i1的博客 1252

Java 使用Easy Excel 个性化模版导出

Java 使用Easy Excel 个性化模版导出

weixin_45330393的博客 749

c\c++: Identifiers, modifier, qualifier, specifier, decorator; systemtap

文章目录参考英语含义在c、C++ 参考 c++ 标准 https://blog.youkuaiyun.com/tyronne/article/details/44016621 英语含义 modifier word or phrase that modifies (modify 2) another word or phrase 修饰语. qualifier (grammar) word, esp an adjective or adverb, that qualifies another word 修饰词; (尤指)形

mzhan017的博客 2431

[Dify] 多步对话流程的实现技巧:构建连贯自然的多轮交互系统

摘要:本文探讨了AI系统中实现多轮对话的核心技术与应用方法。文章首先分析了多步对话的典型场景(如机票预订、财务报告生成)及其价值,提出了Dify平台实现该功能的三大机制:变量系统、条件控制和状态管理。随后详细介绍了顺序型、条件型和确认型三种基本对话模式,并通过"会议预约助手"案例展示了实际应用流程。文章还提供了提示词设计、变量引用等实用建议,并强调多轮对话成功的关键在于清晰的结构设计而非单纯依赖模型能力,最终实现自然流畅的人机交互体验。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1343

easyExcel模版导出

在之前的文章说过easyExcel的好处,这里就不作过多解释了官方文档GitHub - alibaba/easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具EasyExcel(文档已经迁移) · 语雀。

m0_61682705的博客 1616

爬取B站评论+AI情感分析:Python批量抓数据+BERT正负向分类(全流程)

B站作为年轻群体聚集的内容平台,评论区蕴含海量用户真实态度(如好评、吐槽、中立观点),是情感分析的优质数据源!本文分享完整流程:批量爬取B站视频评论→数据清洗去噪→BERT模型情感分类→可视化分析,基于预训练BERT模型实现高精度正负向判断,新手也能快速复刻情感分析系统! 前置配置(关键!获取B站API访问权限) B站评论通过官方API接口返回,无需复杂解析,只需配置用户Cookie即可正常请求: 2. 完整代码(直接复制运行) 三、使用步骤(5步搞定,新手友好) 步骤1:配置关键参数 打开,在类中修改

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1069

Spring Boot2.0之九 使用EasyExcel导出Excel

SpringBoot项目实现Excel文件导出功能,可以使用alibaba开源项目EasyExcel实现。

sinat_31986807的博客 939

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java使用easyexcel导出excel工具类,使用填充模版的方法,实现单元格样式,合并单元格,解决填充行高不一致问题

只写了如何调用,具体根据需求来。

weixin_45559862的博客 441

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

excel导入导出

excel导入

gys9895的博客 340

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring Boot上Excel的导入、导出与模版的下载

项目编写的过程上,要实现对excel文件内容上的数据,进行插入到相对应的数据库上,同时还要对导入的excel某些字段进行校验,校验不通过进行返回前段异常数据与所在异常的位置提示:以下是本篇文章正文内容,下面案例可供参考本文利用EasyExcel实现了Excel文件的导入功能。本文的主要目的是,从Controller层到Dao层全流程演示Excel文件的导入导出以及excel模版的下载,以后遇到相似的业务需求,复制即可运行。

qq_43917690的博客 2187

java自定义模版导出Excel

java自定义模版导出Excel/ 模板文件路径// 导出目标文件String excelFileName = "/Users/sunny/templates/测试导出Excel.xlsx";// 根据模板文件生成目标文件.build();// 测试数据i < 10;i++) {userTest.setName("测试" + i);userTest.setAddress("北京" + i);}// 第一种// 第二种}}@Data}

Lucky boy的博客 504

JAVA实现PDF和EXCEL生成和数据动态插入以及导出

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网...

weixin_44421461的博客 187

EasyExcel实现excel的导入与导出

*** 性别转换器// 实体类中对象属性类型 return Integer . class;// Excel中对应的CellData(单元格数据)属性类型 return CellDataTypeEnum . STRING;} /*** 将单元格里的数据转为java对象,也就是女转成2,男转成1,用于导入excel时对性别字段进行转换。

m0_51963973的博客 2万+

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

@素素~的博客 1万+
上一篇: java实现阿里云的一句话录音转文字demo
下一篇: redis实现消息队列,点对点及发布订阅
SSH_Han
博客等级 码龄9年 0粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值