java导入excel接口校验excel版本是否匹配
在业务开发中,一个功能有三四个版本的时候,对应的excel导入模板也是不同的,这个时候对于不同的导入接口就需要进行excel导入模板的校验。
(图片来源网络,侵删)
1.思路
思想1:校验当前接口对应的dto字段列是否与当前excel对应的表头是否匹配。
思想2:模板中创建一个隐藏sheet,每次导入的时候读取隐藏sheet的sheet名
思想3:读取当前sheet的sheet名并比对该接口应该对应的sheet名
2.代码实现
2.1 校验excel表头代码
// 判断双方的导入列是否一致。true一致,false不一致 private static boolean verifyExcelVersion(Class clazz, Sheet sheet) { List fields = getImportFields(clazz); List classFieldList = fields.stream().map(item -> { return item.getAnnotation(MyExcel.class).name(); }).collect(Collectors.toList()); Row headRow = sheet.getRow(0); int headRowCount = headRow.getLastCellNum() - headRow.getFirstCellNum(); // 读取excel表头 List headStringList = new ArrayList(); for (int c = 0; c field.isAnnotationPresent(MyExcel.class) ).sorted( Comparator.comparing(field -> field.getAnnotation(MyExcel.class).sort()) ).collect(Collectors.toList()); return collect; }
引用代码
boolean verifyExcelVersion = verifyExcelVersion(clazz, sheet); if (!verifyExcelVersion) { throw new RunTimeException("导入模板异常"); }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。