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 相关文章推荐
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
Oct 23 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
vue-cli构建项目使用 less的方法
Oct 04 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
js中Array对象的常用遍历方法详解
Jan 17 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 Javascript
vue 对axios get pust put delete封装的实例代码
Jan 05 Javascript
原生js实现日历效果
Mar 02 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
微信小程序中使用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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
Python制作钉钉加密/解密工具
2016/12/07 Python
Python中super函数用法实例分析
2019/03/18 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
业务员岗位职责范本
2013/12/15 职场文书
社区健康教育实施方案
2014/03/18 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
2016教师节感恩话语
2015/12/09 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
sql注入报错之注入原理实例解析
2022/06/10 MySQL