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 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
javascript 当前日期转化为中文的实现代码
May 13 Javascript
jquery load事件(callback/data)使用方法及注意事项
Feb 06 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
在antd中setFieldsValue和defaultVal的用法
Oct 29 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 上传功能实例代码
2010/04/13 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
asp 的 分词实现代码
2007/05/24 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
使用Kivy将python程序打包为apk文件
2017/07/29 Python
python实现FTP循环上传文件
2020/03/20 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Python可以实现栈的结构吗
2020/05/27 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
用python绘制樱花树
2020/10/09 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
品牌推广活动策划方案
2014/08/19 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
年会主持人开场白台词
2015/05/29 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python