easyExcel以Map的形式读取参数
listener代码
public class UserMapListener extends AnalysisEventListener<Map<Integer,String>> {//由于Listener类不能被spring管理,会出现线程安全的问题所以通过有参构造来实现方法的注入public UserMapListener(UserService userService) {this.userService = userService;}private UserService userService;private List<User> userList=new ArrayList<>();/*** @param integerStringMap excel每一行的数据*/@SneakyThrows@Overridepublic void invoke(Map<Integer, String> integerStringMap, AnalysisContext analysisContext) {SimpleDateFormat sdf=new SimpleDateFormat();User user=new User();Date date=sdf.parse(integerStringMap.get(3));//一般excel不会存在id列所有不用给id赋值user.setName(integerStringMap.get(0));user.setGender(Integer.parseInt(integerStringMap.get(1)));user.setNumber(integerStringMap.get(2));user.setBirthDate(date);user.setAddress(integerStringMap.get(4));user.setPhone(integerStringMap.get(5));userList.add(user);if (userList.size()%5==0){userService.insertList(userList);userList.clear();}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {userService.insertList(userList);System.out.println("执行完毕");}
User对象
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {@TableId(value = "id",type = IdType.ASSIGN_ID)@ExcelIgnoreprivate String id;private String name;private Integer gender;private String number;private Date birthDate;private String address;private String phone;
}
service代码
@Overridepublic void UserMap(MultipartFile multipartFile) throws IOException {//获取文件流ExcelReader build = EasyExcel.read(multipartFile.getInputStream()).build();ReadSheet build1 = EasyExcel//第一个工作区间的表.readSheet(0)//跳过第一条标题.headRowNumber(1).registerReadListener(new UserMapListener(UserServiceImpl.this)).build();//合并两个build.read(build1);}
easyExcel以Map的形式读取参数相关推荐
- 使用section.key的形式读取ini配置项
配置文件读取是很多Go项目必备的功能,这方面社区提供的方案也相对成熟稳定.但之前写这部分代码时除了使用了针对不同配置文件格式(比如:ini.toml等)的驱动包之外,很少直接使用第三方包对读取出的配置 ...
- Python解析命令行读取参数 -- argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...
- python 命令行解析模块_Python解析命令行读取参数 -- argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...
- 2020-08-10 Mybatis配置、使用Map集合传递SQL参数、核心配置文件解析、给包取别名
mybatis配置错误解析 注意!在Mapper.xml的配置文件中,namespace的路径要写成这种形式 <mapper namespace="com.wang.Dao.UserM ...
- MyBatis学习:使用Map的方法传递参数
1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,回顾了JDB ...
- Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)
1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...
- python文本文件不能用二进制文件方式读入_如何使用python函数以二进制形式读取文件?...
虽然读取文件的方式各种各样,但是通过二进制,还是头一次,实现过过程并不难,我们需要将文件先做好封存,以函数的形式,保存下来,然后直接导入进行使用,这样就可以读取文件,因为直接二进制读取是不现实的,只能 ...
- linux写参数文件,linux下纯C++读取参数配置文件
微软把程序猿养懒了.如果你在windows里写程序,那么本文你可以不看,有GetPrivateProfileString等来读取:如果你在qt里写程序,那么本文也可以不看.如果你在linux或者mac ...
- 不是二进制MAT文件,请尝试执行 load -ASCII 以便以文本形式读取
错误: 错误使用load,不是二进制MAT文件,请尝试执行load-ASCII以便以文本形式读取 解决方法 将load替换为dlmread去读取文件 原方法:data = load 路径\文件名.ma ...
最新文章
- Hibernate缓存
- Nosql数据库的四大分类
- 0110-如何给Kerberos环境下的CDH集群添加Gateway节点
- 会php学java入门要多久_php8(java入门要多久)
- 微信小程序音乐播放控制API在真机上貌似不可用?
- C# 图片处理之:旋转图片任意角度
- 易语言怎么判断文件是否一样_怎么判断自己是否怀孕?
- 网络软工个人作业4——Alpha阶段个人总结
- 整合MVC实现文件上传
- c++之指针常量和常量指针
- android壁纸路径/目录
- Error [ERR_INSPECTOR_ALREADY_ACTIVATED]解决方案
- 毕设+电路板(BTN7960驱动电路+LM2596/AMS117稳压电路+蜂鸣器+STM32F103C8T6最小系统电路)
- Excel基础(13)日期函数
- 「大数据干货」基于Hadoop的大数据平台实施——整体架构设计
- vgp虚拟路面_某车型开发阶段实际道路谱和虚拟路面谱对比分析.pdf
- UnityShader基础案例(二)——UI流光,扭曲,外边框,波纹效果
- 写给过得很辛苦很迷茫的你~一定要看啊
- 【优化算法】粒子群优化灰狼算法【含Matlab源码 006期】
- 四年级下册计算机作业,科学(四年级下册)作业.doc
热门文章
- 满足功能安全要求的代码测试方案:Parasoft C++test
- 挖掘长尾关键词的五大思路
- Android activity进出动画,类似于左右拉窗帘效果
- mysql score表_Mysql数据库练习题student,score表
- 告别win10图片查看器内存占用过高,使用windows原来的照片查看器
- docker容器下载及配置
- 微信文件夹的dat文件怎么打开_微信dat文件如何打开?
- list index out of range
- 学习期间的感悟和个人写的一段歌词
- 避免c++程序在windows7或vista下关闭后出现程序兼容性助手