若依集成更好用的easyexcel

背景

  • 若依使用的是apach poi并在此基础上进行封装
  • apach poi的原生的api是很复杂的,若依简化了了此操作
  • apach poi的上传速率和下载速率都是没有优化的,依赖于文件大小的限制
  • 在此前提下,如果没法满足客户的需求(超大型文件的上传),可以集成easyexcel

对比

  • easyexcel 上手更加容易,甚至能够兼容apach poi,能够处理大型的excel,但是不能处理其他类型的文件
  • apach poi能够处理所有的文件类型,类似于excel、PDF、word,但是效率比较低下

导入依赖

官网找到对应的插件集成文档

在这里插入图片描述
在这里插入图片描述

修改

原本的maven的版本太低

<!-- easyexcel -->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version>
</dependency>

使用maven-search,找到合适的版本

 <!--  easyExcel工具--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.1</version></dependency>

导入完了,刷新一下缓存,检查一下是不是真的导进来了

在这里插入图片描述

新增方法

找到common/poi/excelUtil 工具类,在类的最后加上 两个方法

import com.alibaba.excel.EasyExcel;/*** 对excel表单默认第一个索引名转换成list(EasyExcel)* * @param is 输入流* @return 转换后集合*/
public List<T> importEasyExcel(InputStream is) throws Exception
{return EasyExcel.read(is).head(clazz).sheet().doReadSync();
}/*** 对list数据源将其里面的数据导入到excel表单(EasyExcel)* * @param list 导出数据集合* @param sheetName 工作表的名称* @return 结果*/
public void exportEasyExcel(HttpServletResponse response, List<T> list, String sheetName)
{try{EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(list);}catch (IOException e){log.error("导出EasyExcel异常{}", e.getMessage());

修改实体类

/*** 商品管理对象 tb_sku* * @author z* @date 2024-12-06*/
@ExcelIgnoreUnannotated // 忽略未标记Excel注解的字段 只对标注的字段进行导出导入
@ColumnWidth(16) // 列宽
@HeadRowHeight(14) // 表头行高
@HeadFontStyle(fontHeightInPoints = 11) // 表头字体大小
public class Sku extends BaseEntity
{private static final long serialVersionUID = 1L;/** 主键 */private Long skuId;/** 商品名称 */@Excel(name = "商品名称")@ExcelProperty(value = "商品名称")private String skuName;/** 商品图片 */@Excel(name = "商品图片",cellType = Excel.ColumnType.IMAGE)@ExcelProperty(value = "商品图片")private String skuImage;/** 品牌 */@Excel(name = "品牌")@ExcelProperty(value = "品牌")private String brandName;/** 规格(净含量) */@Excel(name = "规格(净含量)")@ExcelProperty(value = "规格")private String unit;/** 商品价格,单位分 */@Excel(name = "商品价格,单位分")@ExcelProperty(value = "商品价")private Long price;/** 商品类型Id */@Excel(name = "商品类型Id")@ExcelProperty(value = "商品类型Id")private Long classId;/** 是否打折促销 */private Integer isDiscount;}

改写controller中导出为

    /*** 导出商品管理列表*/@PreAuthorize("@ss.hasPermi('manage:sku:export')")@Log(title = "商品管理", businessType = BusinessType.EXPORT)@PostMapping("/export")public void export(HttpServletResponse response, Sku sku){List<Sku> list = skuService.selectSkuList(sku);ExcelUtil<Sku> util = new ExcelUtil<Sku>(Sku.class);//util.exportExcel(response, list, "商品管理数据"); // 使用若依原本的poi导出util.exportEasyExcel(response, list, "商品管理数据"); // 使用修改后的easyExcel导出}

改写controller中导入为importEasyExcel

    /*** 商品导入*/@PreAuthorize("@ss.hasPermi('manage:sku:import')")@Log(title = "商品管理", businessType = BusinessType.IMPORT)@PostMapping("/import")public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception{ExcelUtil<Sku> util = new ExcelUtil<Sku>(Sku.class);
//        List<Sku> skuList = util.importExcel(file.getInputStream()); // 原本的poi导入List<Sku> skuList = util.importEasyExcel(file.getInputStream()); // 修改后之后的easyExcel导入String operName = SecurityUtils.getUsername();updateSupport = true;String message = skuService.importSkuList(skuList, updateSupport, operName);return AjaxResult.success(message);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Ubuntu上使用docker compose安装N卡GPU的Ollama服务

在现代计算环境中,利用 GPU 进行计算加速变得越来越重要。下面将讲解如何在Ubuntu上使用docker compose安装N卡GPU的Ollama服务。 1、安装 NVIDIA 容器工具 首先,需要确保你的系统已经安装了 NVIDIA 容器工具 nvidia-container-toolkit。这是让 Docker 容器访问 GPU 的关键…

MySQL语句学习第三篇_数据库

MySQL语句学习第三篇_数据库 专栏记录MySQL的学习&#xff0c;感谢大家观看。 本章的专栏&#x1f4da;➡️MySQL语法学习 本博客前一章节指向➡️MySQL语句学习第二篇 本人的博客➡️:如烟花般绚烂却又稍纵即逝的主页 文章目录 MySQL的基础操作&#xff08;改与查&#xff0…

windows将文件推给Android真机/实机

记录一下 因为以前只试过从真机实机中将文件推给windows 但是从windows只简单复制粘贴的话会一直报错。 1.电脑安装adb 2.手机开启开发者模式 usb调试 3.usb连接选择文件传输 4.推送命令adb push 文件路径 /sdcard/download 步骤1和2和3不作赘述&#xff0c;可以搜相关配置教程…

初始化MySQL服务器时出现问题解决

这个错误信息表明在初始化MySQL服务器时出现问题。具体来说&#xff0c;错误信息提示数据目录中已经存在文件&#xff0c;导致初始化过程被中止。以下是详细的解释和解决方案&#xff1a; 错误信息解释 警告信息&#xff1a; ‘default_authentication_plugin’ is deprecate…

微信小程序uni-app+vue3实现手机号一键登录方法

微信小程序uni-appvue3实现手机号一键登录方法 网上的教程都挺乱&#xff0c;写得都不怎么全&#xff0c;我重新实现了一下&#xff0c;把具体的方法都分享出来。 uni-app/微信小程序官方API 1. uni.login uni-app提供的统一登录接口,用于获取登录凭证(code)。 语法: uni…

C语言——验证“哥德巴赫猜想”

问题描述&#xff1a; 验证"哥德巴赫猜想" 任何一个大于2的偶数都可以表示为两个质数之和。例如&#xff0c;4可以表示为22&#xff0c;6可以表示为33&#xff0c;8可以表示为35等 //验证"哥德巴赫猜想" //任何一个大于2的偶数都可以表示为两个质数之和…

利用 360 安全卫士极速版关闭电脑开机自启动软件教程

在使用电脑的过程中&#xff0c;过多的开机自启动软件会严重拖慢电脑的开机速度&#xff0c;影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件&#xff0c;让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…

分布式搜索引擎之elasticsearch基本使用2

分布式搜索引擎之elasticsearch基本使用2 在分布式搜索引擎之elasticsearch基本使用1中&#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以j接下来&#xff0c;我们研究下…

Android启动优化指南

文章目录 前言一、启动分类与优化目标1、冷启动1.1 优化思路1.2 延迟初始化与按需加载1.3 并行加载与异步执行1.4 资源优化与懒加载1.5 内存优化与垃圾回收控制 2. 温启动2.1 优化应用的生命周期管理2.2 数据缓存与懒加载2.3 延迟渲染与视图优化 3. 热启动3.1 保持应用的状态3.…

[ACTF2020 新生赛]Include

感觉毫无头绪e一下&#xff0c;发现要使用伪协议 伪协议&#xff1a;是PHP自己支持的一种协议与封装协议&#xff0c;简单说就是PHP定义的一种特殊访问资源的方法。 2.什么时候用PHP伪协议? 可能遇到的文件包含函数&#xff1a; 1、include 2、require 3、include_once 4、r…

PHP实现华为OBS存储

一&#xff1a;华为OBS存储文档地址 官方文档&#xff1a;https://support.huaweicloud.com/obs/index.html github地址&#xff1a;https://github.com/huaweicloud/huaweicloud-sdk-php-obs 二&#xff1a;安装华为OBS拓展 composer require obs/esdk-obs-php 三&#x…

vue3使用Eachart图表库踩坑记录

前言 大家好我是没钱的君子下流坯&#xff0c;用自己的话解释自己的知识。很久很更新了&#xff0c;最近一直在加班&#xff0c;今天记录一个eachar图表报警告说过去不到当前DOM节点的宽高导致页面中的图表宽高不正确的坑。 案例 就是一些基础的图形的使用&#xff0c;一个后…

python录制鼠标键盘操作循环播放

依赖 pip install pynput 程序: from pynput import mouse, keyboard import time import threading# 用于存储录制的鼠标和键盘事件 mouse_events [] keyboard_events []# 定义事件处理函数# 处理鼠标事件 def on_move(x, y):mouse_events.append((move, x, y))def on_cl…

十九(GIT2)、token、黑马就业数据平台(页面访问控制(token)、首页统计数据、登录状态失效)、axios请求及响应拦截器、Git远程仓库

1. JWT介绍 JSON Web Token 是目前最为流行的跨域认证解决方案&#xff0c;本质就是一个包含信息的字符串。 如何获取&#xff1a;在使用 JWT 身份验证中&#xff0c;当用户使用其凭据成功登录时&#xff0c;将返回 JSON Web Token&#xff08;令牌&#xff09;。 作用&#xf…

【系统架构核心服务设计】使用 Redis ZSET 实现排行榜服务

目录 一、排行榜的应用场景 二、排行榜技术的特点 三、使用Redis ZSET实现排行榜 3.1 引入依赖 3.2 配置Redis连接 3.3 创建实体类&#xff08;可选&#xff09; 3.4 编写 Redis 操作服务层 3.5 编写控制器层 3.6 测试 3.6.1 测试 addMovieScore 接口 3.6.2 测试 g…

架构15-服务网格

零、文章目录 架构15-服务网格 1、透明通信的涅槃 &#xff08;1&#xff09;服务网格 概念 服务网格是一种处理程序间通信的基础设施&#xff0c;主要由数据平面和控制平面组成。它通过边车代理和控制程序管理程序间的通信&#xff0c;弥补了容器编排系统对分布式应用细粒…

constexpr、const和 #define 的比较

constexpr、const 和 #define 的比较 一、定义常量 constexpr 定义&#xff1a;constexpr用于定义在编译期可求值的常量表达式。示例&#xff1a;constexpr int x 5;这里&#xff0c;x的值在编译期就确定为5。 const 定义&#xff1a;const表示变量在运行期间不能被修改&…

C# RSA加密和解密,RSA生成私钥和公钥

C# RSA加密和解密&#xff0c;RSA生成私钥和公钥&#xff08;使用XML格式秘钥&#xff09; 目录 前言生成xml格式的公钥和私钥 PrivateKeyPublicKey测试加密、解密 方案1&#xff1a;RSA公钥加密&#xff0c;RSA私钥解密方案2&#xff1a;RSA私钥加密&#xff0c;RSA私钥解密…

洛谷P1208

[USACO1.3] 混合牛奶 Mixing Milk - 洛谷 [USACO1.3] 混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低&#xff0c;所以降低原材料&#xff08;牛奶&#xff09;价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。 Marry 乳业从一些奶农手中采购牛奶&…

Linux命令进阶·软链接命令(ln)、查看系统时间命令(date)、自动校准系统时间程序(ntp)

目录 1. 软链接——ln命令 2. 查看系统时间——date命令 3. 自动校准系统时间——ntp程序 1. 软链接——ln命令 在系统中创建软链接&#xff0c;可以将文件、文件夹链接到其他位置。作用相当于windows中的快捷方式。 语法&#xff1a;ln -s 参数1 参数2 -s选项&#xff…