37.SpringBoot集成EasyExcel读取Excel反射实体值为NULL问题

读取Excel文件,用对象接收数据 @NoArgsConstructor(access = AccessLevel.PRIVATE) @Slf4j public final class ExcelUtils { /** * 读取Excel表格的第一个sheet数据到list, 强制实体类成员变量声明顺序与Excel数据列数据一致 * @param file MultipartFile * @... 阅读详情
AI摘要

本文详细介绍如何在SpringBoot项目中集成并使用EasyExcel进行高效的大数据Excel读写操作,包括依赖添加、实体类定义、监听器实现及控制器调用等关键步骤。

前言

小编最近使用springboot集成使用EasyExcel时发现了一个坑

EasyExcel

EasyExcel是由阿里巴巴开发团队提供的一套操作excel的工具, 与常用的POI区别就在于如下

  1. POI对大数据处理起来会引起OOM内存溢出, EasyExcel对此进行了优化, 对内存的占用极大的优化,同时允许分批处理数据

  2. POI对于读写EXCEL操作复杂, 而EasyExcel只需几行代码即可完成

注意点

EasyExcel 版本更新快,不同版本 API 均有不同,有些已经废弃,所以,大家查看文档时,务必找到对应版本的!

SpringBoot集成EasyExcel

SpringBoot可以很方便的集成EasyExcel

添加依赖到pom.xml

<!-- EasyExcel依赖 -->
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>easyexcel</artifactId>
     <version>2.2.0-beta2</version>
</dependency>

使用上也是很简单,咸鱼君就举个简单的例子, 将excel转换为java 实体类来读取

先定义一个User的实体

package com.mrcoder.frameservice.model.po;
import javax.persistence.Table;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
//import lombok.Getter;
//import lombok.Setter;
/**
 * @Description: User实体类
 * @author: mrcoder
 */
//@Getter
//@Setter
@Data
@Table(name = "frame_user")
public class User extends BaseEntity {
    private static final long serialVersionUID = -6525290662533134200L;
    @ExcelProperty(index = 1)
    private String name;

    @ExcelProperty(index = 2)
    private String nickName;

    @ExcelProperty(index = 3)
    private Integer age;

    @ExcelProperty(index = 4)
    private String email;

    @ExcelProperty(index = 5)
    private String phone;

    private Integer status;
}

而后定义一个监听器

package com.mrcoder.frameservice.excel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import com.mrcoder.frameservice.model.po.User;
import java.util.ArrayList;
import java.util.List;

@Slf4j
public class UserModelListener extends AnalysisEventListener<User> {

    //自定义用于暂时存储data
    private List<User> dataList = new ArrayList<User>();

    @Override
    public void invoke(User user, AnalysisContext context) {
        log.info("解析到一条数据:{}", JSON.toJSONString(user));
        log.info("age:{}", user.getAge());
        //根据自己业务做处理
        doSomething(user);
        dataList.add(user);
    }

    private void doSomething(User user) {
        log.info("处理数据!");
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        log.info("所有数据解析完成!");
        //datas.clear();
    }

    public List<User> getDataList() {
        return dataList;
    }

    public void setDataList(List<User> dataList) {
        this.dataList = dataList;
    }
}

然后,我们定义一个Controller来调用读取上传的Excel

package com.mrcoder.frameservice.controller;
import com.alibaba.excel.EasyExcel;
import com.mrcoder.frameservice.excel.UserModelListener;
import com.mrcoder.frameservice.model.po.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

@RestController
@RequestMapping("excel")
public class ExcelController {

    private static final Logger logger = LoggerFactory.getLogger(ExcelController.class);

    @PostMapping("/importUsers")
    public void importUsers(HttpServletRequest request) throws IOException {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile skuExcel = multipartRequest.getFile("filename");
        InputStream inputStream = skuExcel.getInputStream();
        EasyExcel.read(inputStream, User.class, new UserModelListener()).sheet().doRead();
    }

最后我们postman提交excel文件即可

excel文件
image.png

控制台打印结果
image.png

EasyExcel使用问题总结

@ExcelProperty注解是什么

这个注解就是Excel文件列对应实体的依据

@ExcelProperty(index = 1) 
private String name;

如上代码, 意思就是 User的name值对应Excel内容的第2列值!
注意, index从0开始, 代表Excel文件的第一列!

读取excel文件反射成实体后全为NULL

这个问题,咸鱼君也碰过到, 查阅资料得知,lombok这个依赖和EasyExcel还是有点冲突的, 解决的方法就是
将实体类上的这两个注解干掉即可, 没碰到此问题的可能是后续版本解决了该bug!

@Getter
@Setter

最后, 对EasyExcel使用上还有疑问的可以去官方文档上看~

https://alibaba-easyexcel.github.io/index.html

最后,关于EasyExcel反射实体后,进行数据处理的多种方式,可以在我的git项目上找到使用案例, 项目介绍可以看这里.

https://blog.youkuaiyun.com/MrCoderStack/article/details/105752393

请关注我的订阅号

订阅号.png

Java(18):easyExcel如何使用实体映射关系直接读写Excel数据 本文使用的是阿里巴巴的easyexcel工具类,github地址:https://github.com/alibaba/easyexcel 9.1.环境配置 Maven引用 <!-- alibaba easyexcel依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId... 阅读详情

相关推荐

Xilinx FPGA 100G RDMA开发实战:基于AXI Lite配置的ROCE V2高速通信系统搭建

本文详细介绍了在Xilinx FPGA上搭建100G ROCE V2高速通信系统的实战过程。通过分析RDMA技术优势与FPGA实现的必要性,重点阐述了基于AXI Lite接口配置ERNIC IP核的关键步骤,包括硬件系统构建、驱动开发及与商用网卡的互通测试,旨在实现兼具高性能与灵活性的网络加速方案。

js777的博客 575

EasyExcel导入excel文件时得到null值

出现的bug如图: xlsx文件中是有值的,解析出来却全是null,经过查阅是实体类中使用了@Accessors(chain = true)造成,将这个注解改false或去掉注解即可。 EasyExcel与Accessors不兼容原因,看了许多帖子,这篇文章有明确的解释:https://blog.csdn.net/qq_28036249/article/details/108035369 ...

weixin_41974036的博客 2480

Dify插件实战:实时渲染AI生成的HTML/SVG/Canvas代码

在现代Web开发与AI应用集成中,前端渲染技术是实现动态内容展示的核心。其原理在于浏览器引擎解析HTML、CSS、JavaScript等代码,并将其转换为可视化的用户界面。这项技术的价值在于极大提升了开发效率与用户体验,允许开发者快速构建和迭代交互式应用。在AI应用开发领域,尤其是大语言模型(LLM)集成场景,如何将模型生成的**结构化代码**(如描述UI的HTML或数据图表的SVG)实时转化为可视化组件,成为一个关键需求。这直接关系到**Dify**等低代码AI平台能否提供流畅的、所见即所得的交互体验。本

weixin_42545664的博客 498

从Excel中读取数据时获取的数据为空的原因及解决方案

明明我的Excel中有值,可是用OLEDB连接读取它时却返回空值,真是莫名其妙!如果你也遇到过这样的困惑,请往下读,如果暂时还没遇到就以后再读吧,哈哈。 在用OLE DB,ISAM会尝试读取前8行的数据类型,如果一列中的前8行既有文本类型又有数字类型,那么就取多数的数据类型,其余的返回为空。如果两者一样的数目一样多,那么就取数字类型,文本类型的行返回空值。 即:某一列前8行中 如果5行...

weixin_33861800的博客 2216

Windows10开机无限蓝屏(SrtTrail.txt)

这个问题已经有很多的大佬发过解决办法了,这里仅仅作为自己日后方便查找所写文章 无法开机——自动修复失败,报SrtTrail.txt文件错误,且陷入无限蓝屏的循环 事故 故事的起因是这样的: 开开心心的组装电脑,花了几天时间来配置,然后发现USB3.0的接口太少,于是在某宝上搞到一张pcie转7口USB3.0的转接卡,往电脑上一插 插电,开机,电流轻松跑上去 然后,它和原来的磁盘阵列卡冲突,跳过阵列卡自检直接进入系统,boom,就导致了这场悲剧 解决方法 在蓝屏的界面找到:疑难解答->通过命令提示符 使

Holo__的博客 3万+

逆向分析第一步:如何从HEX文件‘还原’出单片机的原始程序与数据?

本文详细解析了如何从HEX文件逆向分析出单片机的原始程序与数据,涵盖了固件逆向的底层逻辑与实践。通过介绍HEX文件的结构、内存映像重建技术以及专业工具链的使用,帮助读者掌握从十六进制数据到可执行代码的完整流程,适用于嵌入式系统开发和逆向工程领域。

weixin_29745609的博客 315

excel 读出的值为空 解决方案

明明看到Ecxel中有值,读出来的确是空值 null ,很奇怪吧。1。excel的连接字串中的扩展属性必须包含IMEX=1;2.修改注册表中的HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows的值为0。TypeGuessRows的系统默认值为8,表示系统从文件中的前8行数据中采样取得数据类型。如果前

libinlink的专栏 3133

ArcGIS供地图斑图形及属性入库操作(附练习数据)

已知数据: 供地图斑位置图。 供地图斑表格 成果要求:将供地图斑导入mdb数据库并将供地图斑表格的属性进行挂接。 接下来我们开始操作: 1、 打开arcmap,在目录内连接的文件夹内找到供地图斑位置图。图片 2、 将annotation和polygon添加到arcmap图片 3、 右击文件所在文件夹新建mdb数据库图片 4、 右击数据库新建要素数据集。(要素数据集非常重要,稍后所有操作都在数据集内进行)选择图斑投影方式及代号。图片 5、 右击要素数据集—导入(将图层内的数据导入数据库)图片 6、 数据导入.

qq_43173805的博客 8130

解决easypoi多行表头ExcelImportUtil.importExcel,无法获取值

目录背景解决方案 背景 需要读取excel数据,我使用的是 easypoi的ExcelImportUtil.importExcel方法。 读取的表格格式如下图所示,注意:多行的表头。 代码如下所示。 package com.springboot.sample.service; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; import

愤怒的苹果ext的博客 1万+

用SOLIDWORKS从零画一个履带机器人,手把手教你搞定底盘和传动

本文详细介绍了如何使用SOLIDWORKS从零开始设计履带式机器人,重点讲解底盘结构优化和传动系统设计的关键步骤。通过七个阶段的实战指南,包括前期规划、底盘建模、驱动系统装配、履带生成、动态模拟等,帮助工程师和爱好者掌握履带机器人的核心设计技巧,提升地形适应能力和动力效率。

weixin_30872499的博客 632

Oracle EBS Interface/API(49)- AP付款取消API

Oracle EBS AP付款取消API介绍和简单实例

陈显平的专栏-Oracle EBS 849

关于利用ExcelUtil.importExcel工具类导入文件前的效验工作

4.获取字节流后通过excel的importExcel获取数据后在存储进数据库时判断某些字段是否为空。这里不提供excelUtil工具类的代码,可自行去hoot上下载也该excel工具包,即可。这里主要提供的代码为在导入文件数据之前对文件的效验工作。2.获取文件后缀是否为xls/xlsx。1.判断文件是否为空。

鹏神丶明月天 2832

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

通过反射获取对象的所有属性&&表格的行转对象

通过反射获取对象的所有属性。 然后可将excel的行封装成一个对象

qq_31564573的博客 1030

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java基于注解和反射导入导出Excel(Bean转Excel,Excel转Bean)

1. 提供了@Excel注解 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package org.xdemo.superutil

zjxbllg2008的专栏 8404

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

自定义注解+反射在excel导入时获取字典表字段对应的值

自定义注解+反射在excel导入时获取字典表字段对应的值 1、思路: 用反射得到实体的上的自定义注解 ,从字典表数据源中找到注解对应的值,不用写很多重复代码,但是并不会改善效率,需要注意的地方就是查询字典表数据的接口一定要加缓存机制,不然循环查数据库就很恐怖;还有就是像行政区划这种很容易重名的字段表不太好使,因为我将字典表数据的值作为map的key,id作为map的value,重名要报错,只有单独写方法去匹配,说到底这种几十上百个字段的实体就不应该导入,还要校验数据,细节根本抠不完,我快遭不住了 2、注解:

qq_38899062的博客 1591

easyexcel Excel表格数据读取数据全null

这里写自定义目录标题easyexcel Excel表格数据读取数据全null,部分为空,原因有下:1. 实体类加@Accessors注解(全null)2.`excel文件中列名` 和 实体类属性字段注解@ExcelProperty(value = "")中`value的值`不一样,则获取不到该列内容(可以不使用value,加index)(部分null)3.实体类@ExcelProperty中的value给了多个值(全null)4.实体类属性名命名不遵循驼峰命名法 easyexcel Excel表格数据读取数

xcl_language的博客 1万+

easyexcel导入读取数据后,实体类的字段全为null

easyexcel导入读取数据后实体类字段全为null

小蓓岑新起航 1279

easyExcel(用于解决excel的读取和写入)的使用

easyExcel的使用

weixin_56388885的博客 702

easyexcel 导出报错 java.lang.InternalError: java.lang.reflect.InvocationTargetException

easyexcel 导出报错java.lang.InternalError: java.lang.reflect.InvocationTargetException本地正常服务器导出生成的excel文件没有内容,服务器报错。

Mr_Wanter 2151

第一次使用easyExcel报错信息记录 NullPointerException + MultipartException

Creating a new SqlSession Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1af74b28] 2023-07-25 19:44:51.354 ERROR 5764 --- [nio-8023-exec-7] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet

我怎么天天吃不饱的博客 673

记录两个Excel导出出现的问题

记录两个使用Excel导出出现的问题

小何的博客 1270

easyexcel对实体类属性赋值为null的问题

1、实体类 @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="Test对象", description="某水表的使用量") @Builder @NoArgsConstructor @AllArgsConstructor public class Test implements Serializable { 2、excel数据 3、我们在实体类上使用@Accessors注解会导致赋值

wuesr的博客 1137

关于使用easyexcle映射实体类某些字段为null解决办法

检查是否在属性字段使用了非常规的属性名,首字母大些了等!easyexcle规定实体类中字段必须严格遵循驼峰命名法,(我就是这个原因,o(︶︿︶)o 唉) 检测是否在实体类属性上标注了注解。 @ExcelProperty(index = 0)//列坐标左侧0开启 private Integer id; @ExcelProperty(value = { "名称" })//标题名称,默认读取第一行 private String name; ...

New_Yao的博客 3620

excel导入

throw new RuntimeException(“递增因子必须大于0”);return ResponseBean.fail(“导入设备类型出错”);return ResponseBean.fail(“数据为空”);return ResponseBean.fail(“数据为空”);@ApiOperation(value = “进场验收导入”)//logger.error(“导入设备类型出错”, e);//TODO::验证记录。

weixin_43766651的博客 1044

解决:EasyExcel读取Excel文件时,读取某列值为null问题

解决:EasyExcel读取xlsx文件时,读取某列值为null问题一·问题描述:(1)利用easyExcel工具读取excel文件时,发现第一列为null,第二列值不为null二·问题原因:(1)利用easyExcel操作文件且与lombok插件@Data注解配合使用时,实体类中对应的属性值,严格遵守驼峰命名,否则就会识别不出来!!!三·解决办法:(1)将excel文件对应的实体类中属性,首字母小写就OK了 一·问题描述: (1)利用easyExcel工具读取excel文件时,发现第一列为null,第二列

weixin_48033662的博客 5863
上一篇: 记一次生产升级事件(php)
下一篇: 38. SpringBoot通用开发框架
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

码哥说

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

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

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

打赏作者

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

抵扣说明:

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

余额充值