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中的throttle和debounce浅析
Jun 06 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
如何使用Bootstrap创建表单
Mar 29 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
vue鼠标悬停事件实例详解
Apr 01 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 Javascript
详解vue 组件
Jun 11 Javascript
js实现鼠标点击飘爱心效果
Aug 19 Javascript
element多个表单校验的实现
May 27 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
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
Python计算程序运行时间的方法
2014/12/13 Python
Python中字典和JSON互转操作实例
2015/01/19 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
python爬虫基本知识
2018/03/05 Python
解读python logging模块的使用方法
2018/04/17 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
python实现学生成绩测评系统
2020/06/22 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
学生实习推荐信范文
2013/11/26 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
归元寺导游词
2015/02/06 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS