导入操作,仅供参考,具体情况具体而论

  @Override
public ReturnObject inforImport(LogySbjsJdsbqxxxParts entity, HttpServletRequest req, MultipartFile file)
throws IOException {
ReturnObject returnObject = new ReturnObject();
List<LogySbjsJdsbqxxxAccount> lsjList = new ArrayList<LogySbjsJdsbqxxxAccount>();
JwtUserObject jwtUserObject = JwtUtil.getJwtUserObj(req.getHeader("Authorization"));
// 创建一个excel文件
HSSFWorkbook workbook = null;
workbook = new HSSFWorkbook(file.getInputStream()); // 获取文件
HSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
int lastRowNum = sheet.getLastRowNum();
// 获取数据
for (int i = 2; i <= lastRowNum; i++) {
HSSFRow row = sheet.getRow(i);
if (row != null) {
List<String> liststr = new ArrayList<>();
String value = null;
for (Cell cell : row) {
if (cell != null && cell.getCellType() != CellType.BLANK) {
cell.setCellType(CellType.STRING);
value = cell.getStringCellValue(); // 读取数据
liststr.add(value);
} else {
value = "";
liststr.add(value);
}
}
if (liststr.size() > 0) {
lsjList = extracted(entity, lsjList, jwtUserObject, i, liststr);
}
}
}
logySbjsJdsbqxxxAccountDao.saveAll(lsjList);
returnObject.setRemsg("上传成功");
return returnObject;
}
	/**
* 构造数据 @Title: extracted @Description: TODO(这里用一句话描述这个方法的作用) @param: @param
* entity @param: @param lsjList 定义一个List @param: @param
* jwtUserObject @param: @param i 行号 @param: @param liststr 解析出来的一行数据 @return:
* void @throws
*/
private List<LogySbjsJdsbqxxxAccount> extracted(LogySbjsJdsbqxxxParts entity, List<LogySbjsJdsbqxxxAccount> lsjList,
JwtUserObject jwtUserObject, int i, List<String> liststr) { entity.setITEMCODE(jwtUserObject.getITEMCODE());
entity.setQxxxModeId(entity.getQxxxModeId());
Example<LogySbjsJdsbqxxxParts> example = Example.of(entity);
// 查询所有并组装
List<LogySbjsJdsbqxxxParts> list = logySbjsJdsbqxxxPartsDao.findAll(example);
// 排序输出
List<LogySbjsJdsbqxxxParts> collectList = list.stream()
.sorted(Comparator.comparing(LogySbjsJdsbqxxxParts::getPartsCode)
.thenComparing(LogySbjsJdsbqxxxParts::getSort)).collect(Collectors.toList());
for (int j = 0; j < liststr.size(); j++) {
String id = UUID.randomUUID().toString().replaceAll("-", ""); // id
String str = liststr.get(j);
if(collectList.get(j).getPartsName().contains("日期")) { //处理日期为数字
Calendar calendar = new GregorianCalendar(1900, 0, -1);
Date d = calendar.getTime();
Date datastr = DateUtils.addDays(d, Integer.valueOf(str));
SimpleDateFormat dataformatter = new SimpleDateFormat( "yyyy-MM-dd");
str = dataformatter.format(datastr);
}
LogySbjsJdsbqxxxAccount lsj = new LogySbjsJdsbqxxxAccount(id, entity.getITEMCODE(),
jwtUserObject.getItemName(), entity.getQxxxModeId(), collectList.get(j).getQxxxPartsId(),
collectList.get(j).getPartsCode(), collectList.get(j).getPartsName(), str, new Date(),
jwtUserObject.getUSERID(), jwtUserObject.getUSERNAME(), 0, i - 1);
// 添加到集合中
lsjList.add(lsj);
}
return lsjList; }

Excel导入操作,poi的更多相关文章

  1. 关于Excel导入导出POI工具类

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import ...

  2. .Net Core Excel导入导出神器Npoi.Mapper

    前言 我们在日常开发中对Excel的操作可能会比较频繁,好多功能都会涉及到Excel的操作.在.Net Core中大家可能使用Npoi比较多,这款软件功能也十分强大,而且接近原始编程.但是直接使用Np ...

  3. POI操作Excel导入和导出

    Apache的POI组件是Java操作Microsoft Office办公套件的强大API,当中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel.由于Word和Po ...

  4. NPOI操作Excel导入DataTable中

    using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.Data; using System.IO; using NPOI.X ...

  5. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  6. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  7. JAVA-----基于POI实现对Excel导入

    在日常项目开发中, 数据录入和导出是十分普遍的需求,因此,导入导出也成为了开发中一个经典的功能.数据导出的格式一般是excel或者pdf,而批量导入的信息一般是借助excel来减轻工作量,提高效率. ...

  8. poi excel导入导出

    pom <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artif ...

  9. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  10. 基于 POI 封装 ExcelUtil 精简的 Excel 导入导出

    注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能.过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好. 序 由于 poi 本身只是 ...

随机推荐

  1. jar包启停shell脚本

    jar包控制脚本1 #!/bin/bash export JAVA_HOME=/u01/java_home/jdk1.8.0_181 export APP_HOME=/u01/test export ...

  2. 闲话 6.19/CF1938M

    CF1938M 计数以下序列 \(\lang a\rang\) 的个数: \[\sum_{i=1}^m a_i=n\\ \forall 1<i<m,(a_i-a_{i-1})(a_i-a_ ...

  3. 使用PhantomJS解决VUE项目无法被百度收录

    一.安装PhantomJS 安装文章:https://www.cnblogs.com/robots2/p/17340143.html 二.编写脚本spider.js // spider.js 'use ...

  4. dbeaver软件使用问题

    一.dbeaver导出数据表到csv后数据乱码 按如下方式导出即可 勾选插入BOM即可 Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unico ...

  5. windows jdk环境变量配置

    新建环境变量[classpath]变量值为[.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar] 新建环境变量[JAVA_HOME]变量值为jdk的安装目录 如:[ ...

  6. 一文详解 MySQL 中的间隙锁

    博客:https://www.emanjusaka.com 博客园:https://www.cnblogs.com/emanjusaka 公众号:emanjusaka的编程栈 by emanjusak ...

  7. keil优化等级说明 keil code optimization

    其中 0级(Constan folding)的优化包括: a.常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其中包括运行地址的计算. b. 简单访问优化:对8051系统的内部数据和位地 ...

  8. android无障碍开发 企业微信 机器人

    实现 Android 无障碍开发 企业微信 机器人 作为一名新入行的开发者,你可能对如何开发一个支持企业微信的无障碍机器人感到迷茫.在这篇文章中,我将为你详细讲解实现这一功能的流程和代码示例. 流程概 ...

  9. Android开发之定时任务(AlarmManager、WorkManager)

    Android 程序的定时任务主要有AlarmManager.WorkManager两种. 一.AlarmManager AlarmManager,又称闹钟,可以设置一次性任务,周期重复任务,定时重复 ...

  10. 若依单体Vue版本新增多环境配置

    若依框架是一个简单的web后台管理脚手架,基于SpringBoot+Vue开发的.本次更改版本为3.8.7截止2023年8月14日,最新版本! 若依自带只有 application.yml 与 app ...