java excel 导入 加校验_POI实现excel各种验证和导入的思路总结
制定标准
导入总是与导出相辅相成的,无规矩不成方圆。所谓的标准都是大家一同来维护和遵守的,那么首先就是制定一个模板。
这样可以减少验证的工作量。
例如时间的规范【yyyy-MM-dd】,获取单元格的时间值用下面的方法
java.util.Date date= cell.getDateCellValue();
但是如果用户不合法输入,那么将会报IllegalStateException异常,此时我们可以进行错误的捕获和处理
导入的前提的数据是合法的,因此验证数据是非常必要的,数据的格式就要大家要遵守了。但是严谨而已,还是必须考虑用户的非法操作。
模板的标识
每个模板都有对应的标识,不可能随便什么数据都可以往数据库表对象中塞的,因此要设计一个标识符用于区分模板。
标识符必须是唯一的,可以识别的。通常都是指定导入对象的主键为标识符。
模板校验
如果模板限定了可以编辑区域,那么只是需要验证标识符即可。但是往往我们需要复制大量的数据,因此不可能设置保护模式,这个时候需要对模板进行格式校验。
校验包括模版格式校验、数据合法性校验,数据范围校验等等。
如果各种校验都用java程序来判断,那么数据量很大的时候,处理和执行速度会非常的慢。经过几天研究,发现善于利用oracle的语句可以使效率提高几十倍,前提
是数据都放在数据库中。
因此,除了简单的检验之后,我们可以将excel的数据放入到数据库创建的临时表或者日志表中,进行数据的校验。
创建的数据临时表必须满足两个条件,第一是含有模板标识符,第二是有一列指标用于存与excel对应的行数。
这样方便返回错误详细信息,告诉用户哪行哪列数据出现问题。
下面是几种简单的校验,非常实用:
@ 检验excel的数据是否重复(数据重复的标准是某几列的值是否相等,即数据唯一标识)
我们不需要循环excel一一对比,我们完全可以使用oracle函数实现数据重复检查
select distinct substr(数据唯一标识列数据) as rn from 数据临时表 a
where rowid !=(select max(rowid) from 数据临时表 b where 数据唯一标识列数据相等
得到的数据是去除重复的数据,只要小于总条数(excel的行数lastRow),那么就可以知道重复的数据。
@ 检验导入的数据是否已经存在
select columns from 数据正式表 INTERSECT (select columns from 数据临时表 where ..);
只要rs.next(),那么证明存在数据,并且可以获取到重复的数据。
java excel 导入 加校验_POI实现excel各种验证和导入的思路总结相关推荐
- excel导入数据校验_使用Excel数据验证限制日期范围
excel导入数据校验 Yesterday, one of my clients emailed to let me know that she was having trouble entering ...
- excel导入数据校验_从Excel数据验证列表中选择多个项目
excel导入数据校验 You've probably used an Excel data validation drop down list, where you can click the ar ...
- java excel 导入 加校验_【JavaWeb】导入Excel并进行校验
一.需要实现的目标 1.界面编写 2.导入表读取表名,进行校验,后台匹配(判断此表的名称是否能够模糊匹配上) 3.确定表存在,读取其中的数据,暂存 4.正则表达式数据校验(判断是否已存在,数据是否符合 ...
- java excel 导入 加校验_Java 利用POI进行excel文件导入时校验数据,并且追加错误批注...
首先拿到前端file控件上传的excel文件,到后台接收!拿到excel这就不多说了网上很多demo的,下面直接说校验单元格追加批注信息的 private void setpz(Workbook wo ...
- java poi 加粗_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
HSSFWorkbook wb = new HSSFWorkbook();html HSSFSheet sheet = wb.createSheet();字体 HSSFCellStyle setBor ...
- java excel单元格背景色_POI 设置Excel单元格背景色(setFillForegroundColor)
背景介绍: 使用Java开发信息系统项目,项目中往往会涉及到报表管理部分,而Excel表格首当其冲称为最合适的选择,但是对单元格操作时对于设置单元格的背景颜色却很少提及,本文旨在方便单元格背景颜色设计 ...
- java poi 填充单元格_POI操作excel表格(建立工作薄、创建工作表、将数据填充到单元格中)...
[java]代码库/* * To change this template, choose Tools | Templates * and open the template in the edito ...
- java 单元格字体颜色_poi设置excel字体颜色
第二步:编写导出代码. 1.在项目中引入poi的依赖包poi-3.17.jar. 2.编写导出的代码 public static void main(String[] args) throws Exc ...
- java导出excel居中不生效_POI 导出Excel 设置内容居中 换行
表头设置: HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("导出数据& ...
最新文章
- 我自学python的路-Python的学习路经
- (chap6 Http首部) 响应首部字段 AllowCt-EncodingCt-LanguageCt-LengthCt-Location
- 如何打开设计思路,避免不断改稿?只需提前做好这一步
- linux rm 不释放_linux删除文件空间不释放问题解决
- 代码编辑器Sublime Text 3 免费使用方法与简体中文汉化包下载
- 基于DirectShow的局域网内音视频流的多机共享
- python-copy模块-待优化的功能
- python运算符and_Python AND运算子
- 基于python/opencv/tesseract使用传统方法的,表格图片版面分析以及印刷体汉字识别(持续更新,学习备份用)
- react中一个音频或视频播放的时候其他音视频暂停播放
- freeCAD transform stepamp;amp; stp to stl logging py2exe 打包
- 怎样把HTC G7的内存扩展到2GB
- learning python in the hard way习题6~10的附加题练习
- Vault: 基础教程之密码引擎及动态密码生成
- 区块链如何改变出版商在学术传播中的角色
- 牛津英语字典pdf下载_除了long time no see,你知道还有这些中式英语也进入了牛津字典吗...
- 论文阅读笔记:Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network
- python数据分析就业班_云开见明 2020Python数据分析师特训营全套课程84节
- Python脚本--别踩小bai块
- 阿里云操作云服务器ECS,linux系统远程连接