java快速搞定excel导出(easypoi)

【测试开发】知识点-使用EasyExcel,实现excel文件的读写操作 一、EasyExcel 简介 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目(阿里巴巴)。在尽可能节约内存的情况下支持读写百M的Excel。 文档地址:alibaba-easyexcel.github.io/index.html github地址:github.com/alibaba/eas… 二、快速使用 1.引入依赖 使用之前引入依赖: <dependencies> <!-- https://mvnrepository.com/art 阅读详情

一、在pom.xml中添加easypoi的maven依赖

       <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.0.3</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.0.3</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.0.3</version>
        </dependency>

二、编写实体类,使用@Excel注解指定要导出的字段

package com.ldy.demo.vo;

import java.io.Serializable;

import org.jeecgframework.poi.excel.annotation.Excel;

public class UserVO implements Serializable {

	private static final long serialVersionUID = -4237467344258292698L;

	// id不导出,不用加@Excel注解
	private Integer id;

	@Excel(name = "姓名")
	private String name;

	@Excel(name = "年龄", type = 10)
	private Integer age;

	@Excel(name = "电话")
	private String phone;

	@Excel(name = "邮箱")
	private String email;

	@Excel(name = "联系地址")
	private String address;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}

      @Excel注解参数说明

属性类型类型说明
nameStringnull列名
needMergebooleanfasle纵向合并单元格
orderNumString"0"列的排序,支持name_id
replaceString[]{}值得替换 导出是{a_id,b_id} 导入反过来
savePathString"upload"导入文件保存路径
typeint1导出类型 1 是文本 2 是图片,3 是函数,10 是数字 默认是文本
widthdouble10列宽
heightdouble10列高,后期打算统一使用@ExcelTarget的height,这个会被废弃,注意
isStatisticsbooleanfasle自动统计数据,在追加一行统计,把所有数据都和输出这个处理会吞没异常,请注意这一点
isHyperlinkbooleanfalse超链接,如果是需要实现接口返回对象
isImportFieldbooleantrue校验字段,看看这个字段是不是导入的Excel中有,如果没有说明是错误的Excel,读取失败,支持name_id
exportFormatString""导出的时间格式,以这个是否为空来判断是否需要格式化日期
importFormatString""导入的时间格式,以这个是否为空来判断是否需要格式化日期
formatString""时间格式,相当于同时设置了exportFormat 和 importFormat
databaseFormatString"yyyyMMddHHmmss"导出时间设置,如果字段是Date类型则不需要设置 数据库如果是string 类型,这个需要设置这个数据库格式,用以转换时间格式输出
numFormatString""数字格式化,参数是Pattern,使用的对象是DecimalFormat
imageTypeint1导出类型 1 从file读取 2 是从数据库中读取 默认是文件 同样导入也是一样的
suffixString""文字后缀,如% 90 变成90%
isWrapbooleantrue是否换行 即支持\n
mergeRelyint[]{}合并单元格依赖关系,比如第二列合并是基于第一列 则{1}就可以了
mergeVerticalbooleanfasle纵向合并内容相同的单元格

三、在controller层编写导出excel接口

        @RequestMapping(value = "/exportData", method=RequestMethod.GET)
	@ResponseBody
	public void exportData(HttpServletResponse response) {
                //调用service代码获取用户数据
		List<UserVO> list = userService.getAllUser();
		Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), UserVO.class, list);
		try {
			String name = "用户数据.xls";
			String fileName = new String(name.getBytes("UTF-8"), "ISO-8859-1");
			response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
	                response.setContentType("application/vnd.ms-excel;charset=UTF-8");
                        workbook.write(response.getOutputStream());
			response.flushBuffer();
			logger.info("用户数据导出成功");
		} catch (IOException e) {
			logger.error("用户数据导出失败,原因:", e);
		} finally {
			try {
				response.getOutputStream().close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

四、在前端页面给导出按钮添加点击事件,执行导出

<button class="btn btn-sm green" onclick="exportData()"><i class="fa fa-file-excel-o"></i>导出</button>

 五、前端导出的js代码参考如下:

        //导出数据
	function exportData(){
		bootbox.confirm({  
	            title: "请确认",
	            message: "您确定要导出吗",  
	            buttons: {  
		        confirm: {  
		            label: '确定',  
		            className: 'btn blue'  
		        },  
		        cancel: {  
		            label: '取消',  
		            className: 'btn default'  
		        }  
		    },  
		    callback: function(result) {  
		        if(result) {  
		            var url = "${ctx}/user/exportData?tmp=1"
		            window.location.href=url;
		        }
		    }     
		});
	}

 

EasyPoi Excel /World操作 EasyPOI是一款简化Apache POI开发的工具类库,专注于Excel/Word文档的快速导入导出操作。它通过注解方式简化开发流程,仅需5行代码即可完成Excel操作,支持模板导出功能。主要面向不熟悉POI、希望减少重复代码的开发者。EasyPOI并非替代POI,而是降低使用门槛。使用前需引入easypoi-base等依赖(4.1.0版本)。示例展示了通过@Excel注解修饰实体类,配合ExportParams实现数据导出,并封装了工具类简化操作。项目官网提供了完整文档支持。 阅读详情

相关推荐

【SpringBoot】37、SpringBoot整合EasyPoi自定义字典导出Excel

前面我们介绍了 SpringBoot 中使用 JeecgBoot 的 Autopoi 导出 Excel,其实 Autopoi 的底层也是 EasyPoi,对于 Excel 的导入/导出也是非常方便的。那 EasyPoi 也是基于 POI 的,如果对这方面想要深究的,可以先看看原生 POI 的导入/导出方式,你会回来选择 EasyPoi 的 一、简介 EasyPoi 功能如同名字 easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出 Excel 导出,Excel 模板导出,Excel 导

JACKAL 22万+

EasyExcel 的基本使用

EasyExcel的基本使用,包含了常用的写Excel、读Excel和填充Excel的方式;Web实际应用中的导入(上传)、导出(下载);以及导入Excel时通用监听器的代码实现和使用示例

凭心而动 1万+

Apollo&Carla联合仿真基本操作

基于UE4开发的开源无人驾驶仿真器PythonAPI自动驾驶传感器(还有理想化的collision detection传感器)用于规划和控制的快速仿真地图生成交通场景(open scenario)仿真ROS集成自动驾驶baseline0.9.15新特性新的车型以及地图基于Omniverse的素材导入基于OSM的三维场景生成。

SLAM小土堆 3800

EasyPOI导出数字格式(type=10)无效

问题:@Excel()中设置了参数type = 10,导出的Excel中还是文本格式 代码如下: @Excel(name = "运费",type = 10,isImportField = "true_st") private BigDecimal freight; 解决办法: 1.新增以下类(原封不动copy到你们项目中,代码中的注释一定要看一下) 代码如下: import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; impor

weixin_45452416的博客 4741

squirrel校园二手交易平台

squirrel校园二手交易平台 (适合寻找SSM项目练手的你。) 项目起源:   期末的课程设计,三人一组,我和两个舍友,一时起兴,决定做一个校园二手交易平台,一开始兴致与激情满满,可是后期时间上的冲突,让我们三个人对于这个项目有点累。   这个项目刚定题两天,BezosLee由于通过了360的网上在线笔试,收到了360公司的免费培训邀请,要去北京的360总部进行培训一周,值得庆...

K.SHI的博客 5万+

干掉百度Apollo的安装!(Apollo10.0的源码安装)

1、在Apollo10.0的安装手册中,没有再详细给出源码安装的步骤,官方更推荐的是包管理安装,但实际上Apollo10.0仍然是可以进行源码安装的。2、使用源码安装Apollo10.0,比Apollo9.0的源码安装问题要少,整个安装过程更顺畅。3、从Apollo 10.0开始,源码安装和包管理安装采用同一套编译工具,也就是aem。之前只有在进行包管理安装的时候我们才需要安装aem,现在进行源码安装也需要安装aem。

qq_40033030的博客 892

[GO] golang happen before 的保证原则

1) 单线程 2) Init 函数 如果包P1中导入了包P2,则P2中的init函数Happens Before 所有P1中的操作main函数Happens After 所有的init函数3) Goroutine Goroutine的创建Happens Before所有此Goroutine中的操作Goroutine的销毁Happens After所有此Goroutine中的操作4) Ch...

程序员老狼专注开发aigc或客服系统应用 456

基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端

【代码】基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端。

weixin_42300449的博客 166

easyExcel动态双行表头导出

easyExcel动态双行表头导出

weixin_66204660的博客 2525

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 823

3、Tone Mapping色调映射(Advanced High Dynamic Range Imaging )

3、Tone Mapping色调映射(Advanced High Dynamic Range Imaging) 如今,大多数可用的显示设备无法本地显示HDR内容。 入门级显示器的对比度仅为200:1。 尽管高端液晶电视具有更高的对比度,但平均对比度约为10,000:1,但通常每个色彩通道的离散度为8位,很少为10位。 这意味着色调限制为255。在过去的二十年中,研究人员花费了大量时间和精力来压缩HDR图像和视频的范围,以便可以在LDR显示器上更“自然”地看到数据。 图3.1 色调映射和真实场景之间.

ISP行业的忠实粉丝 1866

编码技巧——使用Easypoi导出Excel、多sheet、模板导出

本文主要介绍easypoi导出Excel的代码示例;自己之前手动实现过导出工具类《编码技巧——导出工具类》,基于实体和注解,通过反射来映射实体字段和exce列的关系;在部分工程里面看到了easypoi的二方包,于是准备试用下,记录下如何引入并使用Easypoi的过程;

娜娜米的博客 1万+

从统一入口到运营中枢:全面看懂 SAP for Me 的能力边界、使用方式与项目价值

SAP for Me 是 SAP 推出的统一工作平台,旨在整合原本分散在多个系统中的关键信息与操作。它将许可证管理、系统状态、支持工单、维护合同、产品路线图等核心功能集中到一个界面,为不同角色提供定制化视图。平台包含多个功能模块:Home 作为个性化工作台展示待办事项与风险;Calendar 整合各类维护事件与关键时间节点;Reporting 提供跨域分析与趋势洞察;Finance & Legal 管理订单、发票与合规事项;Portfolio & Products 则展示产品全景与路线图。该

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 121

基于easypoi导出excel(可自定义表头)

主要内容是使用easypoi实现excel的导出,其中包含使用注解导出,模板导出,用代码自定义表头实现动态导出,使用模板实现动态导出。本文主要包括excel复杂表头的导出,对简单的excel没有过多说明。

qq_62770345的博客 5227

深度学习助力台风路径预测:技术剖析与实战应用全攻略(基于LSTM模型)

摘要:深度学习技术在台风路径预测领域展现出巨大潜力。通过融合多源气象数据,深度学习模型如LSTM能有效处理时间序列数据,捕捉台风路径变化规律。与传统方法相比,深度学习模型在自动特征学习和处理复杂模式方面具有独特优势,提高了预测的准确性和实时性。然而,挑战依然存在,包括数据质量问题、模型可解释性不足以及极端台风的复杂性。未来,随着观测技术的进步和新算法的开发,深度学习将在台风路径预测中发挥更大作用,为防灾减灾提供更精准的决策支持。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2228

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java easypoi导出Excel表格

之前使用poi导出Excel表格,需要配置很多东西,也比较麻烦,这里使用poi的封装easypoi,可以快速配置,实现Excel或者word文件的导出。这里我们结合SpringMVC开发easypoi。 导入jar包 这里是springMVC和easypoi所需的jar包 主要是easypoi-base和easypoi-web,其它都是关联所需的jar包 spring-servle

小小布的程序世界 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

全网最全最简单使用easypoi导入导出Excel的操作手册

是不是还在用原生的POI写大量的丑陋而冗余的代码,是不是已经对原生的POI烦透了,那么就来使用easypoi吧,使用简单方便,效率高。

码农飞哥 2万+

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

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringBoot集成EasyPOI实现excel导入导出功能

SpringBoot可以快速使用EasyPOI进行便捷的导入导出,这里是一份简单的教程,包含导入和导出部分。一段controller代码+一个@Excel实体类注解,轻松实现excel导入导入。

★【World Of Moshow 郑锴】★ 1万+

easypoi 导出pdf_EXCEL操作神器,快速导入导出,easypoi值得你尝试

话不多说,直接上地址:https://gitee.com/lemur/easypoi介绍:POI 工具类,Excel的快速导入导出,Excel模板导出,Word模板导出,可以仅仅5行代码就可以完成Excel的导入导出,修改导出格式简单粗暴,快速有效,easypoi值得你尝试excle操作帮助文档https://gitee.com/lemur/easypoi帮助文档 帮助文档包含10个部分:1. 前...

weixin_39996739的博客 2631

使用EasyPoi导入导出Excel

导入 目录 - 先写model - 再写controller - 最后写service 在这之前先引入依赖 <!-- Excel导入导出--> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <versio

weixin_47615289的博客 3662

EasyPoi导出Excel实现标记颜色

EasyPoi导出Excel实现标记颜色 PS:不知道EasyPoi 的可以看快速上手文档 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.1.3</version>

AirOrange_qi的博客 7077

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

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

程序员志哥的博客 3526

EasyPoi快速入门(Excel导入导出工具)

Excel快速导入导出

Yu17aa的博客 8069

【springboot+easypoi】一行代码搞定excel导入导出

原文:https://blog.youkuaiyun.com/xufei512/article/details/82632266 开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子【easypoi】,下面介绍下“轮子”的使用。 pom引入 不再需要其他jar <dependency> ...

qiao_w的博客 2816

Excel一键导入导出-EasyPOI

EasyPOI是一个功能强大、易用的Java库,可以帮助开发者快速实现Excel文件的导入导出功能。

奇遇少年 2014

JAVA之利用easypoi将word模板导出为pdf(可带图片)

JAVA之利用easypoi将word模板导出为pdf(可带图片)

xuanzihhh的博客 9599
上一篇: mysql 常用备份命令
下一篇: java RestTemplate put和delete请求无返回值问题解决
咚咚阳丶
博客等级 码龄15年 1968粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值