easyExcel导入excel实现动态进度条
问题:导入一个excel,实现实时进度条的效果
思路:
easyExcel可以获取到excel的总条数,读每一行时存redis,当前条数+1,前端每3秒调用获取redis中的进度数据
代码:
private void parseExcelAndSave(MultipartFile file, Integer approvalType, Integer type,Integer fixedSalaryBatchType, String originId, String requestId) throws Exception {EasyExcel.read(file.getInputStream(), FixedsalaryEmployeeBatchExtPO.class, new ReadListener<FixedsalaryEmployeeBatchExtPO>() {String redisKey = "importExcel:progressBar:"+ SecurityUtils.getLoginUser().get().getId();@Overridepublic void invoke(FixedsalaryEmployeeBatchExtPO fixedsalaryEmployeeBatchExtPO, AnalysisContext analysisContext) {try {//TODO:必填字段校验Integer rowCount = analysisContext.readSheetHolder().getApproximateTotalRowNumber()-3;progressBarHandle(redisKey,rowCount);//保存saveEmployee(fixedsalaryEmployeeBatchExtPO,originId,requestId);} catch (Exception e) {redisCacheUtils.delete(redisKey);log.error(e.getMessage(),e);throw new WebServiceException(e.getMessage(),e);}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {redisCacheUtils.delete(redisKey);}}).headRowNumber(3).sheet().doRead();}/*** 进度条处理* @param redisKey*/private void progressBarHandle(String redisKey, Integer rowCount) {String jsonStr = redisCacheUtils.get(redisKey);JSONObject jsonObject = null;if(ValidateUtil.isExist(jsonStr)) {jsonObject = JSONUtil.parseObj(jsonStr);Integer rowIndex = jsonObject.getInt("rowIndex");rowIndex += 1;jsonObject.put("rowIndex", rowIndex);jsonObject.put("rowCount", rowCount);} else {jsonObject = new JSONObject();jsonObject.put("rowIndex", 1);jsonObject.put("rowCount", rowCount);}redisCacheUtils.add(redisKey, jsonObject, 30, TimeUnit.MINUTES);}
redis获取进度数据
@Overridepublic String getProgressBar() {String redisKey = "importExcel:progressBar:"+ SecurityUtils.getLoginUser().get().getId();String value = redisCacheUtils.get(redisKey);String valueStr = String.format("进度条bar:value: %s",value);log.info(valueStr);return value;}
easyExcel导入excel实现动态进度条相关推荐
- .net导入Excel 并显示进度条
在程序开发过程中,往往会涉及到将Excel表格导入到数据库中的需求,而当excel表格内容很多的时候,我们往往会很难去捕捉它的执行过程进度和一些错误信息,此时我们便可以通过以下方法去解决这些难题,具体 ...
- excel生成动态进度条
背景:想用excel展示实时进度信息 但是用的图标需要开通某壳会员才可以使用 于是就想自己看看能不能做出来一个~ 接下来是用到的公式 =REPT("▓",(COUNTIF(D2:D ...
- EXCEL装逼指南之动态进度条(项目经理必备技能)
EXCEL装逼指南之动态进度条(项目经理必备技能) 作为浪迹职场多年的混子(项目经理),是否常常对项目进度把控不利,汇报工作又含含糊糊让领导不知所以而经常惨遭领导羞辱,同事嘲笑? 那么如何做一份让领导 ...
- easyExcel 导入Excel数据
easyExcel 导入Excel数据 最近公司项目需要导入几十万的Excel数据,我这里用的是现在最流行的easyExcel, 希望能帮助到你 首先导入jar包 <dependency> ...
- python 进度条_Python小程序系列——动态进度条(1)
Python动态进度条I 开始我们的第一个Python程序. 显示一个动态进度条,在同一个位置显示从1%到100% 源代码附上来: import sys #有关Python运行环境的变量和函数impo ...
- python动态显示进度条_实例详解python如何轻松实现动态进度条
本次的这篇文章主要是和大家分享了关于实例详解python如何轻松实现动态进度条,有需要的小伙伴可以看一下 思路及讲解 假设有一个1000000数据的列表(为了让进度条可以显示出来,很大的数据),我们每 ...
- bootstrap 滚动 进度条_bootstrap实现动态进度条效果
Bootstrap的动态进度条: html: 创建一个modal 这里使用fade先将modal隐藏起来,然后modal里面嵌入progress 代码很简单 保存中:{{length}}% PS: ...
- 动态的给python添加进度条_python动态进度条的实现代码
python动态进度条的实现代码,具体内容如下所示: 有时候我们需要使用print打印工作进度,正常使用print函数会导致刷屏的现象,举个最简单的例子,从1打印到10,每次停顿0.1秒 这样看起来很 ...
- ppt模板如何制作动态进度条?
想要让自己的ppt模板更加的精美,一些小细节可以提升ppt模板制作的格调,这次我们就来看看ppt模板如何制作动态进度条?ppt家园给大家介绍一下ppt模板下载的小技巧. 模板入口: https://w ...
最新文章
- 日志平台(网关层) - 基于Openresty+ELKF+Kafka
- java文件上传下载服务并发超时,先收藏了
- 人的执念真的是非常的可怕
- 用小括号表达一个长字符串
- Java面向对象(10)--super关键字
- 遍历List过程中同时修改
- python3实用编程技巧_6.python3实用编程技巧进阶(一)
- jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?
- java处理超大csv文件_比较 csv 文件中数据差异
- Android 显示原理简介
- 利用函数求任意两个数之间的和
- excel中如何批量将所有的网址设为超链接
- hang计算机术语大全,行业英语学习
- 读取采购订单附件(GOS)-[BDS_GOS_CONNECTIONS_GET/SO_DOCUMENT_READ_API1]
- 解决:kubeadm init K8S初始化报错02
- adb shell get/setprop, setenforce...
- cobol 知识点集锦
- python中-是什么意思
- uiuc的计算机工程硕士学费标准,美国计算机硕士留学费用全都在这了!
- 计算机软考抵个税,软考证书怎么来抵扣个税
热门文章
- kaggle+feature engineering(知乎抄的
- 【VMCloud云平台】SCAP(四)连接公有云(二)
- 数据库-Elasticsearch进阶学习笔记(分片、映射、分词器、即时搜索、全文搜索等)
- win32 015使用菜单和加速键
- linux进程管道通信缺点,Linux 进程间通信(1) -- 管道
- python取整符号_python 取整
- 初试-基于神经网络的植物识别
- 开放域对话预训练模型总结
- 企查查爬取返回405错误的一种处理方法
- 互联网热点:“双十一”节奏提前,猿辅导、掌门教育积极转型素质教育