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

用asp.net做的网站模板下载长春关键词优化公司

用asp.net做的网站模板下载,长春关键词优化公司,品网站建设,制作网站需要的技术导出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.dt0577.cn/news/33269.html

相关文章:

  • 做电影类网站收入怎么样个人怎么注册自己的网站
  • 网站返回按钮设计最近五天的新闻大事
  • 电商网站适合做响应式布局吗徐州关键词优化排名
  • 中国推广网站企业营销策划书模板
  • 东营做网站优化公司域名污染查询网站
  • 批量做网站设计公司网站模板
  • 怎么做网站备份什么是seo和sem
  • 网站导航cms怎样创建网站平台
  • 江苏德丰建设集团网站常用搜索引擎有哪些
  • 做的网站 显示乱码百度云官网登录入口
  • 做网站销售的技巧无锡seo公司找哪家好
  • 网站管理员怎么登陆阜平网站seo
  • 网站 psd怎么做网站广告
  • 服装服饰设计网站百度推广系统营销平台
  • 凌晨三点日本无吗seo定义
  • 网站区域名怎么注册吗营销课程
  • 企业网站建设 法规怎么让百度搜索靠前
  • 画册设计报价明细表江西seo推广软件
  • 门户网站营销策略东莞发布最新通告
  • 安康市城乡建设规划局网站怎么做网页设计的页面
  • 公安部网站备案网址长沙关键词排名软件
  • 专业做中文网站微信怎么推广引流客户
  • 做网站支付系统难度发布软文平台
  • 灯塔网站建设重庆百度整站优化
  • 现在个人做网站还能盈利杭州网站优化平台
  • 怎么将自己的视频推广出去兰州网站seo
  • 注册一个做网站的公司好学软件开发学费多少钱
  • 目前玩的人最多网游排行榜seo网站排名查询
  • 自己做网站挂广告怎么赚钱吗公司网站建设平台
  • 中英双语外贸网站源码外包网