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 textContent与innerText的异同分析
Oct 22 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
Sep 26 Javascript
jquery给图片添加鼠标经过时的边框效果
Nov 12 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php备份数据库类分享
2015/04/14 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
javascript 跳转代码集合
2009/12/03 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
django 修改server端口号的方法
2018/05/14 Python
python中实现控制小数点位数的方法
2019/01/24 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
戴森英国官网:Dyson英国
2019/05/07 全球购物
区域销售主管岗位职责
2014/06/15 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
自查自纠整改报告
2014/11/06 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
交心谈心活动总结
2015/05/11 职场文书
在职证明范本
2015/06/15 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
工作自我评价范文
2019/03/21 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis