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

  @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. 2024年! kali高级配置加一键教程加前人的经验加后人的实践

    2024年! kali高级配置加一键教程加前人的经验加后人的实践 记录一下配置kali的过程,方便下次需要直接复制粘贴 直接终端按照顺序输入就可以配置好 作者已踩点,请放心 kali更换国内源 sud ...

  2. 原根学习笔记+BSGS复习笔记

    学原根发现拔山盖世算法忘光了,干脆一块儿写了吧. \(BSGS\) 算法 \(BSGS\) 算法,又名拔山盖世算法.北上广深算法.他解决的问题如下: 求解最小的可行的 \(k\),满足 \(a^k\e ...

  3. [JOI 2020 Final] 火事 题解

    给一篇题解.(下面这张图是从 luogu 上粘贴的,因为不太会画图) 其中纵坐标为 \(t\),横坐标为 \(a_i\). 发现同颜色块只有平行四边形和直角梯形(等腰直角三角形)两种情况. 可以将直角 ...

  4. ABB机器人IO板DSQC651维修检查方法

    ABB机器人作为工业自动化的重要设备,其稳定性和可靠性对于生产线的持续运行至关重要.然而,在实际使用中,由于各种原因,可能会出现ABB机器人IO板DSQC651故障,影响机器人的正常运行. 一.ABB ...

  5. Linux操作文件IO

    Linux操作文件IO 参考自:[北京迅为]嵌入式linux开发指南_v1.1(i.MX6ULL) 文件 IO 是 Linux 系统提供的接口,针对文件和磁盘进行操作,不带缓存机制: 标准 IO 是 ...

  6. css 各种居中

    1. 内部容器居中 flex <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  7. autMan奥特曼机器人-Linux、Windows、docker安装教程

    autMan简介 autMan是机器人牵引的扩展性极强的一站式解决方案 原生支持对接qq框架.qq频道.微信框架(酷V西瓜可爱猫千寻鲲鹏). 内置微信.微信客服.公众号.钉钉.飞书.tg客户端.tg机 ...

  8. Elasticsearch搜索引擎学习笔记(二)

    可视化插件 GitHub搜索elasticsearch-head并下载,如果网络不好可以在gitee上搜索. 这是一个前端项目,需要安装nodejs. 在项目根目录执行 npm install npm ...

  9. ModuleNotFoundError: No module named '_ctypes' when Python3

    前言 运行 python 报错:ModuleNotFoundError: No module named '_ctypes' when using Value from module multipro ...

  10. linux curl 测试 websocket 服务

    如下 curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: ec ...