[总结][Excel导入Oval验证][Java][Oval]
来源:互联网 发布:电脑淘宝怎么看淘友 编辑:程序博客网 时间:2024/06/13 04:16
目录
- 总结Excel导入Oval验证JavaOval
- Maven引用pomxml
- 工具类Java代码
- 如何调用
[总结][Excel导入Oval验证][Java][Oval]
Maven引用[pom.xml]
<dependency> <groupId>net.sf.oval</groupId> <artifactId>oval</artifactId> <version>1.85</version> <scope>compile</scope></dependency>
工具类Java代码
/** 文件读取 **/public <T> List<T> templateToImpVoList( MultipartFile file, Class<T> clz, List<String> fieldList) throws Exception { return ExcelExecutorEx.readExcelContentEx(file, clz, fieldList);}/** 检查ImpVo 行号 对象 控制标志**/ protected List<ImpExcelErrorVo> checkImpVo(Integer row, Object obj, String[] profiles) { Validator validator = new Validator(); List<ConstraintViolation> errors = validator.validate(obj, profiles); List<ImpExcelErrorVo> result = new ArrayList<ImpExcelErrorVo>(); for (ConstraintViolation each : errors) { result.add( new ImpExcelErrorVo( row, Integer.parseInt(each.getErrorCode()), each.getMessage() ) ); } return result;}/** 错误导入文档标记 文件 错误列表 类型标记(分功能存储) **/public String makeImpErrorFile( MultipartFile file, List<ImpExcelErrorVo> errorList, String type) throws IOException { Workbook wb = ExcelExecutorEx.markErrorIntoWorkBook( ExcelExecutorEx.getWorkBookFromFile(file), errorList ); // 修改后Excel Date now = new Date(); String fileName; // 保存名 if (wb instanceof XSSFWorkbook) { fileName = now.getTime() + ".xlsx"; } else { fileName = now.getTime() + ".xls"; } String filePath = type + "/" + CommonUtil.dateFormat(now, "yyyyMMdd") + "/"; // 相对存储路径 String dirStr = Consts.UPLOAD_PATH + "/" + filePath; // 绝对存储路径 File cacheDir = new File(dirStr);// 设置目录参数 cacheDir.mkdirs();// 新建目录 File cacheFile = new File(cacheDir, fileName);// 设置参数 cacheFile.createNewFile();// 新建文件 FileOutputStream fos = new FileOutputStream(dirStr + fileName); // 文件流 wb.write(fos);// 写入文件 fos.close();// 关闭文件 return filePath + fileName; // 返回下载路径}// 检查字典是否存在public static boolean checkKeyExist(String group, String key) { String code = group + GROUP_KEY_SPPLIT_CODE + key + MAP_SPLIT_CODE + "cn"; String localeText = properties.get(code); return localeText != null;}
如何调用
/** * MethodName: batchImport </br> * Description: 批量导入 * @param file 文件 * @param cellNameList 列名 * @param varNameList 值对象名 * @param realPath 真实路径 * @return 返回结果 */public Map<String, Object> batchImport( MultipartFile file, List<String> cellNameList, List<String> varNameList, String realPath) {// 前略 // 导入对象 List<EnterpriseShowVoImp> voImpList = super.templateToImpVoList(file, EnterpriseShowVoImp.class, varNameList); // 文档空验证 if (voImpList.size() == 0) { result.put("error", "message"); result.put("message", "导入内容为空"); return result; } List<ImpExcelErrorVo> errorList = new ArrayList<ImpExcelErrorVo>(); // 检查对象 Integer index = 1; // 行号 for (EnterpriseShowVoImp each : voImpList) { // 自行扩展检查其他如数据库是否存在相同数据等 List<ImpExcelErrorVo> eachList = checkImpVo(index, each, null); if (eachList.size() > 0) { errorList.addAll(eachList); } index++; } // 导入对象有错 if (errorList.size() > 0) { // 导入数据有错 result.put("error", "filepath"); result.put("filepath", super.makeImpErrorFile(file, errorList, "enterprise")); return result; } // 整体插入// 后略}
阅读全文
0 0
- [总结][Excel导入Oval验证][Java][Oval]
- OVAL
- java 验证框架oval的使用方法
- OVAL 场景验证
- java oval xml 校验
- java开源验证框架OVAL帮助文档
- java开源验证框架OVAL应用实例
- 使用oVal进行Java Bean 验证的注意事项
- OVAL验证框架帮助文档_OVAL API
- Java对象校验框架之Oval
- Java对象校验框架之Oval
- OVAL学习笔记
- OVAL的进阶
- OVAL user guides (the object validation framework for Java)
- 为什么要用oval?(什么时候用oval)
- 自定义border (Oval Border)
- Android - shape圆形画法(oval)
- Android - shape圆形画法(oval)
- JPA常用注解
- 【Codeforces 864 C. Bus】
- (4)loadrunner结果问题和解决方案
- 面试题目总结
- java线程池(二) Executors.newFixedThreadPool
- [总结][Excel导入Oval验证][Java][Oval]
- JAVA获取POST请求的请求头信息
- 如何在H5页面上添加音乐播放
- 关于自定义程序的效能优化
- 滴滴附加题(2018校招)
- js中的事件委托或是事件代理详解
- 博客重新运行啦
- 静态路由和动态路由的比较
- Scry.info社区开发者技术分享——智能合约