当前位置: 首页 > news >正文

深圳营销型网站建设价格东莞软件网站推广

深圳营销型网站建设价格,东莞软件网站推广,网站如何跳转,好享购物官方网站购物导出excel文件是开发中常见的需求 常见的做法一般是直接通过请求接口响应对象HttpServletResponse把文件输出 我们可以使用原生的poi工具类操作.也可以使用easypoi.easyexcel等基于poi二次封装的工具处理 下面是代码 /*** 导出列表** param request* param response*/Overri…
导出excel文件是开发中常见的需求
常见的做法一般是直接通过请求接口响应对象HttpServletResponse把文件输出
我们可以使用原生的poi工具类操作.也可以使用easypoi.easyexcel等基于poi二次封装的工具处理
下面是代码

/*** 导出列表** @param request* @param response*/@Overridepublic void export(AuctionRequest request, HttpServletResponse response) throws IOException {Map<String, Object> queryMap = Maps.newHashMap(BeanConvertUtils.beanToMap(request));List<Auction> auctions = auctionManager.listAuctions(queryMap);if (CollectionUtils.isEmpty(auctions)) {throw new AuctionException("当前数据为空");}List<AuctionDataExportModel> auctionExportModels = auctions.stream().map(item -> {AuctionDataExportModel auctionExportModel = new AuctionDataExportModel();auctionExportModel.setAuCode(item.getAuCode());auctionExportModel.setAuTitle(item.getAuTitle());return auctionExportModel;}).collect(Collectors.toList());response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setHeader("Access-Control-Allow-Origin", "*");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("导出", "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + System.currentTimeMillis() + ".xlsx");EasyExcel.write(response.getOutputStream(), AuctionDataExportModel.class).sheet("数据区").doWrite(auctionExportModels);}
这样操作乍一看没啥问题.但是我这边前端同事是使用的axios发送的请求,必须指定响应类型为 ‘arraybuffer’ 或者 ‘blob’.
axios({method: 'post',url: '/export',responseType: 'arraybuffer',//'blob'
}).then(res => {})
正常下载是没有问题的,一旦代码报错.因为指定了响应类型.就拿不到返回的错误信息了.
于是采用了成功的时候后端直接把文件上传到s3服务器,然后把文件地址返给前端.出错的时候把错误信息返给前端,就解决了上述的问题
上代码
/*** 导出列表** @param request*/@Overridepublic String export(AuctionRequest request) {Map<String, Object> queryMap = Maps.newHashMap(BeanConvertUtils.beanToMap(request));List<Auction> auctions = auctionManager.listAuctions(queryMap);if (CollectionUtils.isEmpty(auctions)) {throw new AuctionException("当前数据为空");}List<AuctionDataExportModel> auctionExportModels = auctions.stream().map(item -> {AuctionDataExportModel auctionExportModel = new AuctionDataExportModel();auctionExportModel.setAuCode(item.getAuCode());auctionExportModel.setAuTitle(item.getAuTitle());return auctionExportModel;}).collect(Collectors.toList());//上传至s3服务器,同时将路径返回给前台ByteArrayOutputStream bos = new ByteArrayOutputStream();EasyExcel.write(bos, AuctionDataExportModel.class).sheet("数据区").doWrite(auctionExportModels);byte[] binary = bos.toByteArray();InputStream inputStream = new ByteArrayInputStream(binary);String excelName = "导出" + IdWorker.getMillisecond() + ".xls";String returnFilePath = CommonsConstants.STORE_AUCTION_SYNC_EXCEL + excelName;PutObjectResult putObjectResult = s3Util.uploadFile(inputStream, "xls", returnFilePath);org.wildfly.common.Assert.assertNotNull(putObjectResult);return returnFilePath;}
我这里是传到s3服务器,其他的文件服务器(minio.七牛云)也都提供类似的上传api.按需替换就好了.
http://www.yayakq.cn/news/635828/

相关文章:

  • 秦皇岛建设厅网站外贸网站定制建站
  • 小学网站建设与管理办法蜡笔小新网页制作模板
  • 学科网站建设标准打开国外网站很慢
  • 做研究的网站东莞网站建设新闻资讯
  • 东莞飞天网站设计公司做电影网站看电影算网站流量吗
  • 铜陵建设网站网络服务器
  • 网站开发 外包公司黑色网站
  • 站长工具域名查询ip电商怎么做营销推广w
  • 网站商品展示页怎么做的网易免费企业邮箱入口
  • 我的家乡网站设计模板施工企业岗位说明书
  • 商城类网站方案四子王旗建设局网站
  • 四川省建设资格注册中心网站地税网站如何做税种确认
  • 铜仁网站网站建设做效果图兼职的网站有哪些
  • 南宁网站建设推广服务做网站前台开发学习
  • 请问婚庆网站建设该怎么做呢wordpress 获取插件目录下
  • dede网站数据库路径阿里巴巴做外贸的网站
  • 红酒网站模板下载ppt模板 免费
  • 坪山网站建设公司哈尔滨服务最好的网站优化公司
  • 苏州网站建设代理渠道自助建站免费建站五个平台
  • 电子网站建设考试国际网站怎么建设
  • 贵州企业品牌网站建设官方网站下载方法
  • 无锡网站制作电话多少空调维修自己做网站
  • 哪个专业是学网站开发的做网站什么价格
  • app设计欣赏网站石家庄网站制作系统
  • 网站开发服务单位wordpress 增加 推荐
  • 网站怎么设计好看区域知识产权贸易中心
  • 网站制作流程和方法域名 阿里云
  • 关于计算机网站开发的论文题目关键词网站建设
  • 大连六兄弟网站建设网页链接怎么打开
  • 滨江网站建设公司成都网站优化哪家好