JavaScript

超轻量级php框架startmvc

vue+springmvc导出excel数据的实现代码

更新时间:2020-07-14 04:54:01 作者:startmvc
vue端处理this.$http.get(this.service+'/user/excel',{responseType:'blob'}).then(({data})=>{console.info(typeofdata)

vue端处理


this.$http.get(this.service + '/user/excel',{responseType: 'blob'}).then(({data})=> {
 console.info(typeof data)
 var a = document.createElement('a');
 var url = window.URL.createObjectURL(data);
 a.href = url;
 a.download = '用户统计信息.xls';
 a.click();
 window.URL.revokeObjectURL(url);
 })

web端处理


 int total=userBsService.getCount(null);
 List<UserVo> list=userBsService.getList(null, 1, total);
 String fileName = new Date().getTime() + "";
 XSSFWorkbook wb=new XSSFWorkbook();
 Sheet sheet=wb.createSheet();
 Row row0=sheet.createRow(0);
 String titleName[] = {"用户账号", "充值总金额", "邀请总人数", "社群组"};//列名
 for(int i=0;i<titleName.length;i++){
 sheet.setColumnWidth(i, 10 * 512); 
 row0.createCell(i).setCellValue(titleName[i]);
 }
 int i=0;
 for(UserVo v:list){
 Row row=sheet.createRow(i+1);
 if(!StringUtils.isEmpty(v.getMobile())){
 row.createCell(0).setCellValue(v.getMobile());
 }else{
 row.createCell(0).setCellValue(v.getEmail());
 }
 row.createCell(1).setCellValue(BigDecimalUtil.outputConvert(v.getAmount()));
 row.createCell(2).setCellValue(v.getCounts());
 row.createCell(3).setCellValue(v.getGroups());
 i++;
 }
 ByteArrayOutputStream os = new ByteArrayOutputStream();
 try{ 
 try {
 wb.write(os);
 wb.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 byte[] content = os.toByteArray();
 InputStream is = new ByteArrayInputStream(content);
 response.reset();
 response.setContentType("application/vnd.ms-excel;charset=utf-8");
 response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
 ServletOutputStream out = response.getOutputStream();
 BufferedInputStream bis = null;
 BufferedOutputStream bos = null;
 try {
 bis = new BufferedInputStream(is);
 bos = new BufferedOutputStream(out);
 byte[] buff = new byte[2048];
 int bytesRead;
 while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
 bos.write(buff, 0, bytesRead);
 }
 } catch (final IOException e) {
 throw e;
 } finally {
 if (bis != null)
 bis.close();
 if (bos != null)
 bos.close();
 }
 }catch (Exception e){
 }
 return null;

总结

以上所述是小编给大家介绍的vue+springmvc导出excel数据的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

springmvc 导出excel vue springmvc