上传与导入
element ui 中的el-upload组件
<el-upload
class="upload-demo"
action="#"
accept=".xlsx, .xls"
:auto-upload="false"
:on-change="uploadFile"
:show-file-list="false"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传xlsx、xls 文件,且不超过100M</div>
</el-upload>
/*这是实现上传的js方法*/
uploadFile(item){
let formData = new FormData();
let file = item.raw;
formData.append('file', file);
this.$axios({
method: "post",
data: formData,
url:
"/api/device/query/impXXX",
})
.then(function (res) {
console.log(res);
if(res.data.flag == 200){
alert("导入成功");
}else{
alert("导入失败");
}
})
.catch(function (e) {});
}
这里是后端接收文件并导入到数据库,导入时用到了easypoi,挺方便
在实体类上使用@Excel注解指定
/*导入*/
@PostMapping("/impXXX")
@ResponseBody
@Transactional
public JSONObject impXXX(@RequestParam("file") MultipartFile file){
JSONObject json = new JSONObject();
if (file == null){
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setHeadRows(1);
List<Kd> list = null;
try {
list = ExcelImportUtil.importExcel(file.getInputStream(), Kd.class, params);
for(int i=0;i< list.size(); i++){
storager.insertTemp(list.get(i));
}
json.put("flag",200);
}catch (NoSuchElementException e){
//throw new NotFoundException("excel文件不能为空");
json.put("flag",100);
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
json.put("flag",100);
// throw new NotFoundException(e.getMessage());
}
return json;
}
下载
下载时直接触发下载请求
第一种
download(){ window.location.href="http://X.X.X.X:xxx/a/b/c/down";
}
第二种
<el-link href="http://X.X.X.X:xxx/a/b/c/down" target="_blank">下载</el-link>
后端代码
下载时用到easypoi,也是给pojo使用@Excel注解
/*下载信息*/
@GetMapping("/down")
public void download(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 告诉浏览器用什么软件可以打开此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("数据表","UTF-8") + ".xls");
//编码
response.setCharacterEncoding("UTF-8");
List<Sxt> list = storager.querySxtBm();
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), Sxt.class, list);
workbook.write(response.getOutputStream());
}