Excel导入操作,poi
导入操作,仅供参考,具体情况具体而论
@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的更多相关文章
- 关于Excel导入导出POI工具类
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import ...
- .Net Core Excel导入导出神器Npoi.Mapper
前言 我们在日常开发中对Excel的操作可能会比较频繁,好多功能都会涉及到Excel的操作.在.Net Core中大家可能使用Npoi比较多,这款软件功能也十分强大,而且接近原始编程.但是直接使用Np ...
- POI操作Excel导入和导出
Apache的POI组件是Java操作Microsoft Office办公套件的强大API,当中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel.由于Word和Po ...
- NPOI操作Excel导入DataTable中
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.Data; using System.IO; using NPOI.X ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- JAVA-----基于POI实现对Excel导入
在日常项目开发中, 数据录入和导出是十分普遍的需求,因此,导入导出也成为了开发中一个经典的功能.数据导出的格式一般是excel或者pdf,而批量导入的信息一般是借助excel来减轻工作量,提高效率. ...
- poi excel导入导出
pom <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artif ...
- SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- 基于 POI 封装 ExcelUtil 精简的 Excel 导入导出
注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能.过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好. 序 由于 poi 本身只是 ...
随机推荐
- 优化-iceberg调参优化
一.建表优化 1.iceberg表支持更新操作. 文档:https://iceberg.apache.org/docs/latest/configuration/ 功能描述:因v1只支持insert, ...
- .Net对接Java接口加密不通过?
前言 相信又不少小伙伴在对接第三方接口时遇到过这种情况:参数.排序.加密方式都按照接口文档进行处理了,可就是签名不通过,然后开始怀疑是不是参数漏了?参与加密的参数不对?还是加密方式有问题?最后一顿 ...
- 20 分钟高效掌握 cursor
本身属于在前端小组的一次小分享,这里做个同步分享. 一.pro 权益说明 目前公司购买了 2 个 pro 月付账号,权益包括无限制 tab 补全与 ai 聊天,但每个月只有 500 个快速请求权益,如 ...
- [SDOI2015] 序列统计 题解
乘法并不容易用 FFT 或 NTT 维护,考虑在模意义下化乘为加. 化乘为加主要有两种方法:\(\log\) 和 \(\gamma\)(指标),由于在取模意义下,所以使用后者. 那剩下的部分就是快速幂 ...
- 福尼斯焊机TPS320i/TPS400i/TPS500i的焊接特性
福尼斯焊机设备原理 TPS320i.TPS400i.TPS500i和TPS 600iMIG/MAG电源由微处理器控制,机器人驱动器维修,是完全数字化的逆变器电源. 模块化设计和系统的扩展潜力使其具有高 ...
- IAP升级(STM32)
IAP升级(STM32) IAP作用简述:将要升级的程序bin文件通过串口发送给STM32,STM32接收后存储到FLASH或者SRAM,用户通过事件(按键等)触发(也可延时自动触发)后将升级 文件夹 ...
- ffmpeg-5.0-essentials_build 下载
ffmpeg-5.0-essentials_build下载放到蓝奏里了 https://wwz.lanzoub.com/if9xq02pttkb密码:ee8i
- 2024从国庆到CSP前总结
前言 这是一篇迟来的总结,不过可能也不算太迟. 正文 截至起稿时间(2024.10.23),这个月已经讲了四次课,考了五场试.内容基本全是基于前一段时间的内容进行提升,对我而言很有帮助.我也意识到自己 ...
- python 函数与方法的区别
函数与方法的区别 并不是类中的调用都叫方法 1.函数要手动传self,方法不用传self. 2.如果是一个函数,用类名去调用,如果是一个方法,用对象去调用. class Foo(object): de ...
- go goroutine 怎样更好的进行错误处理
前言 在 Go 语言程序开发中,goroutine 的使用是比较频繁的,因此在日常编码的时候 goroutine 里的错误处理,怎么做会比较好呢? 一般我们的业务代码如下: func main() { ...