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 相关文章推荐
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
javascript基本常用排序算法解析
Sep 27 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 Javascript
es6中new.target的作用和使用场景简单示例分析
Mar 14 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 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写的求多项式导数的函数代码
2012/07/04 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
js读写json文件实例代码
2014/10/21 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
JS随机数产生代码分享
2018/02/24 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
sqlalchemy对象转dict的示例
2014/04/22 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python之消除前缀重命名的方法
2018/10/21 Python
Python3爬虫学习入门教程
2018/12/11 Python
Python中断多重循环的思路总结
2019/10/04 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
详解Python 最短匹配模式
2020/07/29 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
文员自我评价怎么写
2013/09/19 职场文书
护士自我鉴定
2013/10/23 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
三方股东合作协议书
2014/10/28 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
走进毛泽东观后感
2015/06/04 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
Vue Element plus使用方法梳理
2022/12/24 Vue.js