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 本身只是 ...
随机推荐
- 2024年! kali高级配置加一键教程加前人的经验加后人的实践
2024年! kali高级配置加一键教程加前人的经验加后人的实践 记录一下配置kali的过程,方便下次需要直接复制粘贴 直接终端按照顺序输入就可以配置好 作者已踩点,请放心 kali更换国内源 sud ...
- 原根学习笔记+BSGS复习笔记
学原根发现拔山盖世算法忘光了,干脆一块儿写了吧. \(BSGS\) 算法 \(BSGS\) 算法,又名拔山盖世算法.北上广深算法.他解决的问题如下: 求解最小的可行的 \(k\),满足 \(a^k\e ...
- [JOI 2020 Final] 火事 题解
给一篇题解.(下面这张图是从 luogu 上粘贴的,因为不太会画图) 其中纵坐标为 \(t\),横坐标为 \(a_i\). 发现同颜色块只有平行四边形和直角梯形(等腰直角三角形)两种情况. 可以将直角 ...
- ABB机器人IO板DSQC651维修检查方法
ABB机器人作为工业自动化的重要设备,其稳定性和可靠性对于生产线的持续运行至关重要.然而,在实际使用中,由于各种原因,可能会出现ABB机器人IO板DSQC651故障,影响机器人的正常运行. 一.ABB ...
- Linux操作文件IO
Linux操作文件IO 参考自:[北京迅为]嵌入式linux开发指南_v1.1(i.MX6ULL) 文件 IO 是 Linux 系统提供的接口,针对文件和磁盘进行操作,不带缓存机制: 标准 IO 是 ...
- css 各种居中
1. 内部容器居中 flex <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- autMan奥特曼机器人-Linux、Windows、docker安装教程
autMan简介 autMan是机器人牵引的扩展性极强的一站式解决方案 原生支持对接qq框架.qq频道.微信框架(酷V西瓜可爱猫千寻鲲鹏). 内置微信.微信客服.公众号.钉钉.飞书.tg客户端.tg机 ...
- Elasticsearch搜索引擎学习笔记(二)
可视化插件 GitHub搜索elasticsearch-head并下载,如果网络不好可以在gitee上搜索. 这是一个前端项目,需要安装nodejs. 在项目根目录执行 npm install npm ...
- ModuleNotFoundError: No module named '_ctypes' when Python3
前言 运行 python 报错:ModuleNotFoundError: No module named '_ctypes' when using Value from module multipro ...
- linux curl 测试 websocket 服务
如下 curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: ec ...