我是靠谱客的博主 潇洒眼睛,这篇文章主要介绍java中Excel导入,下载模板,附带前端展示,现在分享给大家,希望可以做个参考。

java中Excel导入,下载模板,附带前端展示

后台下载模板代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/** * 多个模板下载 */ @RequestMapping(value = "/downloadExcel", method = RequestMethod.GET) @ResponseBody public void downloadExcel(HttpServletRequest request,HttpServletResponse response,String type) { try { //获取要下载的模板名称 String fileName = ""; if("solidWaste".equals(type)){ fileName = "模板名称.xlsx"; }else if("buildTrash".equals(type)){ fileName = "模板名称.xlsx"; }else if("lifeTrash".equals(type)){ fileName = "模板名称.xlsx"; }else if("recycLing".equals(type)){ fileName = "模板名称.xlsx"; } ExcelUtils.downloadExcel(request,response,fileName); //return Response.ok("应用导入模板下载完成"); } catch (Exception ex) { logger.error("getApplicationTemplate :", ex); //return Response.ok("应用导入模板下载失败!"); } }

vue前端调用方法

复制代码
1
2
3
4
5
6
<el-button type="primary" @click="downloadExcel()">下载Excel模板</el-button> downloadExcel () { window.location.href = this.$http.adornUrl('接口名称?type=参数类型') },

后台导入Excel controller层

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/** * 导入Excel * @param file * @param session * @return * @throws */ @RequestMapping(value = "/importExcel",method = RequestMethod.POST) public R importExcel(@RequestParam("file") MultipartFile file, HttpSession session) throws IOException { InputStream inputStream = null; R result = new R(); try { //获取最后一个.的位置 int lastIndexOf = file.getOriginalFilename().lastIndexOf("."); //获取文件的后缀名 .jpg String suffix = file.getOriginalFilename().substring(lastIndexOf); if(!suffix.equals(".xlsx") && !suffix.equals(".xls")){ result.put("code", Constant.SERVER_ERROR);//服务端错误 500 result.put("msg","上传文件格式错误,请检查重新上传!"); return result; } inputStream = file.getInputStream(); Workbook wb = WorkbookFactory.create(inputStream); Long userId = getUserId(); Map<String,Object> res = dataSolidWasteService.importExcelData(wb,session,userId); result.put("code",res.get("code")); result.put("msg",res.get("msg")); return result; }catch (Exception e){ e.printStackTrace(); result.put("code",Constant.SERVER_ERROR);//服务端错误 500 result.put("msg","导入数据异常,请联系管理员!"); return result; } }

后台导入Excel 业务处理层

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/** * 读取Excel文件中的值并导入 * @param wb * @param session * @return 导入成功返回200,失败则返回对应的原因 */ @Override public Map<String,Object> importExcelData(Workbook wb, HttpSession session, Long userId){ List<Map<String,Object>> resList = new ArrayList<>(); Sheet sheet = wb.getSheetAt(0); Map<String,Object> map = new HashMap<>(); List<DataSolidWasteEntity> addList = new ArrayList<>(); //保存信息集合 //自己封装的工具类 设置一些参数之类的 int index = ExcelUtils.getExcelRealRow(sheet);//有效行数 if(index == 0){ map.put("code", Constant.EXCEL_CHECK_NULL);//服务端错误 52001 map.put("msg","导入的记录行数不能为0,请确认后再操作!"); return map; } if(sheet.getRow(0).getCell(0) != null){ //设置String类型 sheet.getRow(0).getCell(0).setCellType(Cell.CELL_TYPE_STRING); String name1 = sheet.getRow(0).getCell(0).getStringCellValue().replaceAll(" +",""); String name2 = sheet.getRow(0).getCell(1).getStringCellValue().replaceAll(" +",""); String name3 = sheet.getRow(0).getCell(2).getStringCellValue().replaceAll(" +",""); String name4 = sheet.getRow(0).getCell(3).getStringCellValue().replaceAll(" +",""); String name5 = sheet.getRow(0).getCell(4).getStringCellValue().replaceAll(" +",""); String name6 = sheet.getRow(0).getCell(5).getStringCellValue().replaceAll(" +",""); String name7 = sheet.getRow(0).getCell(6).getStringCellValue().replaceAll(" +",""); if(!"统计月份".equals(name1) || !"区县".equals(name2) || !"企业名称".equals(name3) || !"固废种类".equals(name4) || !"利用技术".equals(name5) || !"处置利用量".equals(name6) || !"主要产品及产量".equals(name7) ){ map.put("code",Constant.EXCEL_CHECK_NULL);//服务端错误 52001 map.put("msg","表头列名错误!"); return map; } } //循环每一行 for(int i = 1;i<index+1;i++){ //循环第i行 if(sheet.getRow(i) != null){ //表格实体类 根据自己的需求加入 DataSolidWasteEntity dre = new DataSolidWasteEntity(); //第一列统计月份 if(sheet.getRow(i).getCell(0) != null){ //设置String类型 sheet.getRow(i).getCell(0).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(0).getStringCellValue().trim())){ String statisticsMonth = sheet.getRow(i).getCell(0).getStringCellValue().trim(); dre.setStatisticsMonth(statisticsMonth); } } //第二列区县 if(sheet.getRow(i).getCell(1) != null){ //设置String类型 sheet.getRow(i).getCell(1).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(1).getStringCellValue().trim())){ String countyName = sheet.getRow(i).getCell(1).getStringCellValue().trim(); dre.setCountyName(countyName); } } //第三列企业单位 if(sheet.getRow(i).getCell(2) != null){ //设置String类型 sheet.getRow(i).getCell(2).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(2).getStringCellValue().trim())){ String receiveCompany = sheet.getRow(i).getCell(2).getStringCellValue().trim(); dre.setReceiveCompany(receiveCompany); } } //第四列固废类别 if(sheet.getRow(i).getCell(3) != null){ //设置String类型 sheet.getRow(i).getCell(3).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(3).getStringCellValue().trim())){ String trashType = sheet.getRow(i).getCell(3).getStringCellValue().trim(); dre.setTrashType(trashType); } } //第五列利用技术 if(sheet.getRow(i).getCell(4) != null){ //设置String类型 sheet.getRow(i).getCell(4).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(4).getStringCellValue().trim())){ String usedUtilize = sheet.getRow(i).getCell(4).getStringCellValue().trim(); dre.setUsedUtilize(usedUtilize); } } //第六列处置利用量 if(sheet.getRow(i).getCell(5) != null){ //设置String类型 sheet.getRow(i).getCell(5).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(5).getStringCellValue().trim())){ String usedUtilizeNum = sheet.getRow(i).getCell(5).getStringCellValue().trim(); dre.setUsedUtilizeNum(usedUtilizeNum); } } //第七列主要产品(多个用分号隔开) if(sheet.getRow(i).getCell(6) != null){ //设置String类型 sheet.getRow(i).getCell(6).setCellType(Cell.CELL_TYPE_STRING); if(!"".equals(sheet.getRow(i).getCell(6).getStringCellValue().trim())){ String mainProductNum = sheet.getRow(i).getCell(6).getStringCellValue().trim(); dre.setMainProductNum(mainProductNum); } } dre.setCreatedBy(userId); dre.setCreatedTime(new Date()); dre.setUpdatedBy(userId); dre.setUpdatedTime(new Date()); addList.add(dre); }else { continue; } } //插入数据 if(addList.size() > 0){ try { dataSolidWasteDao.insertBatch(addList); map.put("code",Constant.TOKEN_CHECK_SUCCESS);//成功 0 map.put("msg","导入成功!"); resList.add(map); }catch (Exception e){ e.printStackTrace(); map.put("code",Constant.SERVER_ERROR);//服务端错误 50000 map.put("msg","导入数据异常,请联系管理员!"); resList.add(map); return map; } } return map; }

vue前端调用

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<el-upload class="upload-demo import" :action="后台接口" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" :show-file-list="false" :before-upload="beforeAvatarUpload" :on-progress="uploading" name="file" :http-request="importExcel" multiple > <el-button type="success">导入</el-button> </el-upload>

最后

以上就是潇洒眼睛最近收集整理的关于java中Excel导入,下载模板,附带前端展示的全部内容,更多相关java中Excel导入内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部