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


Posted in Javascript onJune 27, 2018

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数据的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 Javascript
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
Sep 22 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
动态加载jQuery的方法
Jun 16 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 Javascript
async/await地狱该如何避免详解
May 10 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
express express-session的使用小结
Dec 12 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 #Javascript
浅谈Webpack下多环境配置的思路
Jun 27 #Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 #Javascript
详解关于vue-area-linkage走过的坑
Jun 27 #Javascript
详解nuxt sass全局变量(公共scss解决方案)
Jun 27 #Javascript
Vue引入sass并配置全局变量的方法
Jun 27 #Javascript
详解解决使用axios发送json后台接收不到的问题
Jun 27 #Javascript
You might like
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
php文件缓存类汇总
2014/11/21 PHP
php jsonp单引号转义
2014/11/23 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
小程序实现分类页
2019/07/12 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
python add_argument()用法解析
2020/01/29 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
Unix/Linux开发面试题
2016/08/16 面试题
自我评价的写作规则
2014/01/06 职场文书
英语教育专业自荐信
2014/05/29 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL