Swagger下载的Excel打不开,下载的Excel比实际大小更大

有同事使用了我写的ExcelUtil生成Excel并提供下载,使用Swagger进行测试的时候,发现下载的Excel打不开。解决思路如下:

  1. 首先更改输出流的地址,把Excel生成在本地测试下,发现功能正常,Excel可以打开;
  2. 检查response有没有正确设置Content-type和Content-disposition,发现也没有什么问题;
  3. 比较下载下来的Excel和第1步生成的Excel发现大小变大了,因此怀疑可能是在服务器到Swagger的过程中对流做了某些转换导致大小变大,无法打开。

解决方法

灵光一闪,会不会是Swagger本身有什么设置,于是上网查找资料,发现确实需要配置,导出方法的@ApiOperation注解的produces属性需要配置为"application/octet-stream",如下:

@ApiOperation(value = "导出设备列表到excel", notes = "deviceDeployVo", produces = "application/octet-stream")

response设置如下:

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=cardReaderList.xlsx");

设置完之后问题解决,文件大小一致,可以打开了,所以功能本身没问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值