excel导入表头校验
引入依赖
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.18</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.4</version></dependency><dependency><groupId>org.apache.xmlbeans</groupId><artifactId>xmlbeans</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.0.0</version></dependency>
获取文件
public static LinkedHashSet<String> getHead(MultipartFile file) throws IOException {LinkedHashSet<String> result = new LinkedHashSet<>();InputStream stream = file.getInputStream();Workbook wkbook = WorkbookFactory.create(stream);Sheet rs = wkbook.getSheetAt(0);Row row = rs.getRow(0);for (int i=0; i<row.getLastCellNum(); i++){String cellData = getCellValue(row.getCell(i));result.add(cellData.replaceAll(" ", ""));}return result;}
getCellValue方法
public static String getCellValue(Cell cell) throws Exception {CellType cellType = cell.getCellType();String cellValue = "";switch (cellType) {case NUMERIC:if (DateUtil.isCellDateFormatted(cell)) { // 日期 可能无法识别Date date = cell.getDateCellValue();cellValue = new DateTime(date).toString("yyyy-MM-dd");} else {// 不是日期格式 防止数字过长cell.setCellType(STRING);cellValue = cell.toString();}break;case FORMULA:cellValue = cell.getCellFormula();break;case STRING:cellValue = cell.getStringCellValue();break;case BOOLEAN: // 布尔cellValue = String.valueOf(cell.getBooleanCellValue());break;case BLANK: // 空break;case ERROR:throw new Exception("单元格类型异常");}return cellValue;}
定义一个List,存入表头信息
public static final List<String> MY_LIST = Collections.unmodifiableList(new ArrayList<String>() {private static final long serialVersionUID = 1L;{add("* 姓名(必填)");add("* 身份证号码(必填)");add("学历");add("性别");add("* 培训时间(必填)");add("* 培训名称(必填)");add("证明人");add("主办单位");add("民族");add("籍贯");add("政治面貌");add("地址");add("手机号码");add("邮箱");}});
最后封装成一个方法返回boolean即可
public static boolean getHeads(MultipartFile file) throws IOException {LinkedHashSet<String> head = getHead(file);for (String s : head) {if (!MY_LIST.contains(s)){return false;}}return true;}
excel导入表头校验相关推荐
- excel导入数据校验_从Excel数据验证列表中选择多个项目
excel导入数据校验 You've probably used an Excel data validation drop down list, where you can click the ar ...
- excel导入数据校验_Excel数据验证更新
excel导入数据校验 I've finally updated my Data Validation intro video, so it shows the steps for creating ...
- excel导入数据校验_使用Excel数据验证限制日期范围
excel导入数据校验 Yesterday, one of my clients emailed to let me know that she was having trouble entering ...
- excel导入数据校验_Excel数据验证错误消息
excel导入数据校验 Do you like to use error checking in Excel, so that problem cells are flagged, or do you ...
- java excel 导入 加校验_POI实现excel各种验证和导入的思路总结
制定标准 导入总是与导出相辅相成的,无规矩不成方圆.所谓的标准都是大家一同来维护和遵守的,那么首先就是制定一个模板. 这样可以减少验证的工作量. 例如时间的规范[yyyy-MM-dd],获取单元格的时 ...
- java excel 导入 加校验_【JavaWeb】导入Excel并进行校验
一.需要实现的目标 1.界面编写 2.导入表读取表名,进行校验,后台匹配(判断此表的名称是否能够模糊匹配上) 3.确定表存在,读取其中的数据,暂存 4.正则表达式数据校验(判断是否已存在,数据是否符合 ...
- Excel导入表头名称重复处理 多级表头合并单元格的标题导入数据
背景 由于业务需求是excel模板不可以修改,但是excel表中的表头是重复的,目前使用的控件会取最后一个赋值,前面的都丢弃了.并且有的表格还是多级表头的情况. 解决办法 使用的是ruoyi框架中的导 ...
- java excel 导入 加校验_Java 利用POI进行excel文件导入时校验数据,并且追加错误批注...
首先拿到前端file控件上传的excel文件,到后台接收!拿到excel这就不多说了网上很多demo的,下面直接说校验单元格追加批注信息的 private void setpz(Workbook wo ...
- SpringBoot 项目实现 Excel 导入导出功能
背景 Excel 导入与导出是项目中经常用到的功能,在 Java 中常用 poi 实现 Excel 的导入与导出.由于 poi 占用内存较大,在高并发下很容易发生 OOM 或者频繁 fullgc,阿里 ...
最新文章
- cmake, This may result in binaries being created in the wrong place
- Java 对象锁和类锁全面解析
- 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
- 设计模式-行为-观察者
- eclipse tomcat插件安装
- select语句 rows相等_我去,这两个小技巧,让我的SQL语句不仅躲了坑,还提升了 1000 倍(半分钟干货系列)...
- 解决 ImportError: No module named ‘pip._internal‘问题
- MSN登录问题:Error 80072ee7
- ieee trans pami latex模板
- 超市管理系统java代码_java实现简单超市管理系统
- pr下载与安装(含安装包百度网盘链接)
- html怎么做实心圆,html5如何使用canvas画空心圆与实心圆
- 恶意样本分析手册——理论篇
- 解决“error C1083: 无法打开包括文件: “HPSocket.h”: No such file or directory”
- Halcon实战之MLP颜色匹配(一)
- 三子棋编程题(上)--跟着鹏哥,学习C语言打卡第三天!!
- 如何扫描远程主机开放的端口?
- 林深时见鹿,海蓝时见鲸
- 想要转行产品经理,可是社招都要有产品经理相关经验的,该如何转行呢?
- PBX220评测报告