aeasyexcel 操作 Excel

Web项目利用EasyExcel实现Excel的导出操作 早期Java使用的一些解析,到处excel的框架存在种种问题被遗弃,现在使用阿里巴巴所提供的EasyExcel已成为一种主流,本篇将详细介绍该功能在Web项目中如何实际应用。 阅读详情

一、简述

easyexcel (阿里开源项目)是一款快速、简单避免OOM的 java 处理 Excel 工具。maven依赖如下:

<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.4</version>
</dependency>

二、实现已有Excel模板下载

模板配置路径如图:

下载代码分三步,主要分为加载资源->读取资源->写入响应流:

@RestController
@RequestMapping("/export")
public class ExportController {
    @GetMapping("/downloadTemplate")
    public void downloadTemplate(HttpServletResponse response) throws Exception {
        ClassPathResource classPathResource = new ClassPathResource("templates/easy.xls");
        InputStream inputStream = classPathResource.getInputStream();
        Workbook workbook = new HSSFWorkbook(inputStream);
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("content-Disposition", "attachment;filename=" +
                            URLEncoder.encode("easy.xls", "utf-8"));
        response.setHeader("Access-Control-Expose-Headers", "content-Disposition");
        OutputStream outputStream = response.getOutputStream();
        workbook.write(outputStream);
        outputStream.flush();
        outputStream.close();
    }
}

三、写入数据并生成文件

定义模型映射对象 UserExcelModel:

@Data
public class UserExcelModel extends BaseRowModel implements Serializable {
    @ExcelProperty(value = "用户名", index = 0)
    public String name;
    @ExcelProperty(value = "年龄", index = 1)
    public Integer age;
    @ExcelProperty(value = "手机号", index = 2)
    public String mobile;
    @ExcelProperty(value = "性别", index = 3)
    public String sex;
    public UserExcelModel(String name, Integer age, String mobile, String sex) {
        this.name = name;
        this.age = age;
        this.mobile = mobile;
        this.sex = sex;
    }
}

导出流程:定义列标题->创建sheet->自定义字体和风格->构造数据->写入数据->写入到浏览器响应流

@RestController
@RequestMapping("/export")
public class ExportController {
    @GetMapping("/exportData")
    public void exportData(HttpServletResponse response) throws Exception {
        XSSFWorkbook workbook = new XSSFWorkbook();
        String[] columnNames = {"用户名", "年龄", "手机号", "性别"};
        Sheet sheet = workbook.createSheet();
        Font titleFont = workbook.createFont();
        titleFont.setFontName("simsun");
        titleFont.setBold(true);
        titleFont.setColor(IndexedColors.BLACK.index);

        XSSFCellStyle titleStyle = workbook.createCellStyle();
        titleStyle.setAlignment(HorizontalAlignment.CENTER);
        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        titleStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
        titleStyle.setFont(titleFont);
       
        Row titleRow = sheet.createRow(0);
        for (int i = 0; i < columnNames.length; i++) {
            Cell cell = titleRow.createCell(i);
            cell.setCellValue(columnNames[i]);
            cell.setCellStyle(titleStyle);
        }
        //模拟数据
        List<UserExcelModel> dataList = new ArrayList<>();
        dataList.add(new UserExcelModel("张三", 12, "13811021203", "男"));
        dataList.add(new UserExcelModel("李四", 12, "13811021204", "男"));
        dataList.add(new UserExcelModel("王五", 12, "13811021205", "男"));
        dataList.add(new UserExcelModel("赵六", 12, "13811021206", "男"));

        //创建数据行并写入值
        for (int j = 0; j < dataList.size(); j++) {
            UserExcelModel userExcelModel = dataList.get(j);
            int lastRowNum = sheet.getLastRowNum();
            Row dataRow = sheet.createRow(lastRowNum + 1);
            dataRow.createCell(0).setCellValue(userExcelModel.getName());
            dataRow.createCell(1).setCellValue(userExcelModel.getAge());
            dataRow.createCell(2).setCellValue(userExcelModel.getMobile());
            dataRow.createCell(3).setCellValue(userExcelModel.getSex());
        }
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("content-Disposition", "attachment;filename=" + 
                            URLEncoder.encode("easyExport.xls", "utf-8"));
        response.setHeader("Access-Control-Expose-Headers", "content-Disposition");
        OutputStream outputStream = response.getOutputStream();
        workbook.write(outputStream);
        outputStream.flush();
        outputStream.close();
    }
}
手把手教 - VSCode 开发 GD32F450 单片机 系统版本:rt-thread v5.2.2单片机型号:GD32F450ZK基于文章进行开发。 阅读详情

相关推荐

致远OA公文管理模块相关操作

致远oa协同办公系统 公文管理模板 相关操作

weixin_59666050的博客 4267

使用Easyexcel对Excel进行读写操作

easyexcel完成读写操作 poi导出excel

BUG专业户 1万+

RAID 0/1/5/10 性能实测:4块 SATA SSD 组阵列,顺序读写速度对比

本文通过实测对比了RAID 0/1/5/10在4块SATA SSD上的顺序读写性能,详细展示了不同RAID级别的配置方法、理论性能与实际测试数据。测试结果显示,RAID 0在顺序读写速度上表现最佳,而RAID 10则在性能与数据安全之间取得了平衡,适合数据库服务器等关键应用场景。

weixin_33462167的博客 423

EasyExcel操作Excel表格

EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。

qq_45110186的博客 1607

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 916

Allegro如何设置走线自动删除重复走线操作指导

Allegro如何设置走线是自动删除重复走线操作指导在PCB布线的时候,点到点需要重复走一段线的时候,希望原来的线段自动被删除,Allegro设计的时候支持这个操作如下图,重复走中间的线段的时候,希望下方的走线自动删除具体操作如下This section is describe what the function allegro have ,helpfully could let user know more about allegroAllegro Design and Analysis includes

weixin_54787054的博客 4497

使用EasyExcel实现excel的简单读写操作

测试类定义一个返回list的方法进行表格中内容的填写,因为EasyExcel.write().doWrite()方法的参数需要list集合。在测试类中我们使用EasyExcel中的read方法进行实现。右键运行,就会在定义的位置生成一个xlsx的表格文件了。进行读操作需要我们定义一个监听类。

weixin_44610169的博客 883

Untiy之如何实现AI+MR (Pico4u 相机推流MR画面给Server做实时AI图像识别)

本文介绍了基于Pico4U企业版开发AI+MR应用的实现方案。文章详细说明了硬件准备步骤,包括购买企业版设备、申请相机权限和注册管理平台。重点讲解了Unity开发中获取摄像头画面的两种技术方案:通过Overlay直接渲染到Android Surface,或使用API获取图像数据转换为Texture。提供了完整的代码示例和权限配置说明,并揭示了底层通过JNI调用Android原生API的技术原理。该方案适用于带电操作等实习场景,可提升安全性和学习趣味性。

TxNet 1333

EasyExcel读取Excel数据(含多种方式)

简单地说,EasyExce是一个Java库,用于快速、简单地读写Excel文件以下是官网的简介:Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。

m0_59084856的博客 3万+

无人机:DJI Matrice 200 Series_(13).行业应用案例分析

在前一节中,我们介绍了DJI Matrice 200系列无人机的基本硬件配置和性能参数。本节将通过具体的行业应用案例,分析如何利用DJI Matrice 200系列无人机进行二次开发,以满足不同行业的需求。

zhubeibei168的博客 1448

【大模型应用开发-大模型知识】(二)大模型分类和常见大模型

目前包含 Claude 和 Claude-Instant 两种模型可供选择,其中 Claude Instant 的延迟更低,性能略差,价格比完全体的 Claude-v1 要便宜,两个模型的上下文窗口都是 9000 个token(约 5000 个单词,或 15 页)它的目标是“更安全”、“危害更小”的人工智能。Google 还开发了多种 PaLM 的改进版本。更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。

1万+

使用EasyExcel实现Excel表格的导入导出

Java解析、生成Excel比较有名的框架有Apachepoi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POIsax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;

qq_45004609的博客 5747

部署与可视化系统:移动端跟踪系统:YOLOv8 + ByteTrack 结合 Android CameraX 实现实时行人计数 App

本文详细介绍了在Android移动端实现实时行人检测、跟踪与计数系统的完整方案。系统采用YOLOv8+ByteTrack技术栈,基于NCNN推理引擎,无需云端算力即可在手机端侧完成全流程处理。文章从技术选型、系统架构、CameraX集成等多个维度进行深入解析,重点阐述了移动端部署面临的工程挑战和优化策略。通过四层管道模型设计,实现了从图像采集到目标跟踪的高效处理流程,并采用C++ NDK开发确保性能。该系统在中端手机上可达到10FPS,旗舰机型可达30FPS,为移动端实时目标跟踪提供了可落地的解决方案。

ZXSXJ的博客 90

spring boot-操作excel(EasyExcel 快速开始)/ spring boot接受文件参数 File

java本身并不支持读取excel,所有读取excel需要借助一些框架。

西京刀客 3524

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

详细讲解Java使用EasyExcel函数来操作Excel表(附实战)

详细讲解Java使用HSSFWorkbook函数导出Excel表(附实战),现在发觉还有个EasyExcel也可专门用来读写Excel表。

码农研究僧的博客 5264

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

EasyExcel 读写 Excel

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

qq_42923937的博客 740

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JAVA使用easyexcel操作Excel

之前写过一篇《JAVA操作Excel》,介绍了jxl和poi读写Excel的实现,今天为大家介绍一下使用easyexcel对Excel进行读写,项目主页地址:https://github.com/alibaba/easyexcel 作者对easyexcel的介绍是: Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有...

优快云_KONGlX的博客 1807

使用 EasyExcel 实现高效的 Excel 读写操作

EasyExcel 是一个功能强大且高效的 Excel 操作工具。它通过简化代码结构、优化性能和丰富的功能支持,成为 Java 开发者处理 Excel 文件的首选库。通过本篇博客的讲解,相信你已经掌握了 EasyExcel 的基本用法和高级功能,能够在实际项目中高效处理 Excel 文件。

小DuDu的博客 1912

EasyExcel 操作excel导入导出

easyexcel操作文件导入导出,导入进行数据校验

m0_51315555的博客 4237

excel系列(三) - 利用 easyexcel 快速实现 excel 文件导入导出

本篇我们继续深入介绍另一款更优秀的 excel 工具库:easyexcel 。

程序员志哥的博客 3105

EasyExcel使用总结

easyexcel 使用详解

北执南念的博客 4029

使用EasyExcel读取和导出Excel文件

读取Excel文件:使用方法读取文件,并通过处理每一行的数据。导出Excel文件:使用方法将数据写入到响应的输出流中,并设置正确的响应头。希望这篇教学文章对你有所帮助。如果有任何问题或需要进一步的帮助,欢迎随时评论交流。

weiwen1408的博客 7786

用EasyExcel对excel表格进行读写操作

用EasyExcel对excel表格进行读写操作

weixin_45105773的博客 1140

EasyExcel导入Excel和导出Excel教程

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 它底层是基于POI做的封装和优化,避免了POI耗费内存,内存溢出的问题。笔者之前做导出、导入Excel也是使用POI,后来在生产上总是出现内存溢出的问题,在寻求解决方案的路途中,就找到了EasyExcel。 1.集成ExasyExcel <dependency> <groupId>com.alibaba</groupI

李秀才的博客 4380

EasyExcel 与 Apache POI:Java 操作 Excel 的详解

EasyExcel 是阿里巴巴开源的一个基于 Java 的 Excel 操作库。它在传统的 Excel 操作库(如 Apache POI)基础上进行了封装和优化,提供了更简洁的 API 和更高的性能,尤其是在处理大数据量的 Excel 文件时表现出色。Apache POI 是一个开源的 Java 库,用于操作各种 Microsoft Office 格式的文件,包括 Excel、Word、PowerPoint 等。它提供了低级 API 和高层 API,可以进行文件的读取、写入、创建、修改等操作。

技术驱动,分享互联网软件的那些事儿。关注我,获取有深度、有温度的技术内容,开启你的技术之旅。 1585

EasyExcel 读写Excel, 多sheet操作

摘要:EasyExcel是一款Java操作Excel的开源库,提供简便的读写功能。通过Maven引入依赖后,可快速实现Excel操作:1)写入时定义数据模型类并设置样式,支持多Sheet操作;2)读取时注册监听器处理数据,自动完成解析。该库简化了POI的复杂操作,支持自定义样式,适合大规模数据导入导出场景。

从对比中寻找伤害 495
上一篇: Java 比较两个任意文件是否相同
下一篇: Excel 文件的生成与下载
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值