java批量导入Excel数据超详细实例
更新时间:2023年08月23日 10:58:05 作者:java-jcm
这篇文章主要给大家介绍了关于java批量导入Excel数据的相关资料,EXCEL导入就是文件导入,操作代码是一样的,文中给出了详细的代码示例,需要的朋友可以参考下
1.后台导入代码
import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.afterturn.easypoi.excel.imports.ExcelImportService; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @ApiOperation(value = "以导入excel方式") @PostMapping(value = "/uuApplyUserInfo") public String importMonitor(@RequestParam MultipartFile file) throws Exception { if (file == null) { return ValueUtil.isError("导入失败,上传文件数据不能为空"); } ImportParams params = new ImportParams(); params.setNeedVerify(true);//是否开启校验 params.setHeadRows(1); //头行忽略的行数 final ExcelImportService excelImportService = new ExcelImportService(); ExcelImportResult excelImportResult = excelImportService.importExcelByIs(file.getInputStream(), YzLicensedUnit.class, params, false); //校验成功数据 List<YzLicensedUnit> list = excelImportResult.getList(); final Field failCollection = ExcelImportService.class.getDeclaredField("failCollection"); failCollection.setAccessible(true); //校验失败数据 List<YzLicensedUnit> failList = (List) failCollection.get(excelImportService); if (list.size() == 0 && failList.size() == 0) { return ValueUtil.isError("导入失败,上传文件数据不能为空"); } if (failList.size() > 0){ return ValueUtil.isError("导入失败,上传文件数据与模板不一致"); } //如果没有错误,可以存入数据库 if (list.size() >= 0 && StringUtil.isNotEmpty(list)) { //批量插入sql语句 licensedUnitService.saveBatch(list); }else{ return ValueUtil.isError("导入失败,上传文件数据不能为空"); } return ValueUtil.toJson("导入成功"); }
2.实体类
import cn.afterturn.easypoi.excel.annotation.Excel; @Data @TableName("数据库表名") public class YzLicensedUnit { //表格有的字段都要加Execl,并且name要跟表格字段一致 @Excel(name = "持证面积/亩") @NotNull(message = "持证面积/亩不能为空") private BigDecimal acreage; @ApiModelProperty(value = "经度") private String longitude; @ApiModelProperty(value = "纬度") private String latitude; //replace 表格传来的值如果等于 是,则字段内容插到表中的是0,否就是1 @Excel(name = "苗种生产许可证持证单位",replace ={"是_0","否_1"}) @NotNull(message = "苗种生产许可证持证单位不能为空") private String permit; @Excel(name = "持证编号") @NotNull(message = "持证编号不能为空") private String number; @Excel(name = "持证单位") @NotNull(message = "持证单位不能为空") private String entName;
2.1设置表格下拉选项
3.vue前端导入功能代码
<el-upload :auto-upload="true" :multiple="false" :on-change="handleChange" :on-success="fileUploadSuccess" :on-error="fileUploadError" :file-list="fileList" :action="BASE_API" name="file" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" > <el-button size="small" type="primary">批量导入</el-button> </el-upload> export default { data() { return { fileList: [], //批量导入接口地址 BASE_API: this.http_url + "/api/uuApplyUserInfo", }; }, methods: { handleChange() { }, // 上传多于一个文件时 fileUploadExceed() { this.$message.warning("只能选取一个文件"); }, //上传成功回调:通信成功 fileUploadSuccess(row) { //业务失败 if (row.code == '500') { this.$message.error(row.msg); } else { //业务成功 this.$message.success(row.msg); } this.fileList = []; this.search(); }, //上传失败回调:通信失败 fileUploadError(error) { error = JSON.parse(error.toString().substr(6)); this.$message.error(error.msg); } }
总结
到此这篇关于java批量导入Excel数据的文章就介绍到这了,更多相关java批量导入Excel数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java concurrency线程池之Callable和Future_动力节点Java学院整理
这篇文章主要为大家详细介绍了Java concurrency线程池之Callable和Future,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06mybatis-plus插入一条数据,获取插入数据自动生成的主键问题
这篇文章主要介绍了mybatis-plus插入一条数据,获取插入数据自动生成的主键问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12在springboot3微项目中如何用idea批量创建单元测试逻辑
这篇文章主要介绍了在SpringBoot3项目中使用IntelliJIDEA批量创建单元测试包括准备工作(确保项目配置正确,添加测试依赖),使用IntelliJIDEA创建测试,感兴趣的朋友一起看看吧2024-10-10
最新评论