使用hutool-poi在未安装Office或wps软件的电脑中生成Excel的xls后缀消失问题

 

使用hutool-poi在未安装Office或wps软件的电脑中生成Excel的xls后缀消失问题

由于项目中存在日志导出功能,会将查找的日志数据生成Excel文件并下载,在开发和测试过程中,该功能并未出现问题。

而当现场环境使用一台未安装Office或wps软件的电脑去下载日志文件时,生成的xls文件后缀消失。当安装wps软件后再下载便会出现xls后缀。

首先可以排除代码中后缀生成问题,因为是直接拼接的,而当使用Mac系统测试时,会将xls转换为xlw,这种转换是强制的。一开始分析的是,系统对于尚未安装应用程序的后缀文件,没有在默认文件列表里生成映射关系,所以会进行过滤拦截,去除后缀。这种假设是符合的,但使用百度文库或其他网盘下载上传好的xlsx文件时,后缀并没有被过滤,所以应该是类型配置中出现问题。

1.转换生成文件的编码格式都为UTF-8(并没有用)

2.修改ContentType,以下为对应关系

image-20200421193315703

如果是excel97~2003,那么content-type应该设置为:application/vnd.ms-excel,

如果是excel2007以后的,那么content-type应该设置为:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

最开始代码中使用的是application/vnd.ms-excel,在修改为第二个并将后缀拼接为xlsx,下载功能终于正常,后缀不受系统过滤。

若要复现该问题是比较繁琐的,因为大部分电脑都会安装office软件,很少会用一台WindowsServer服务器来访问项目的情况,所以之前并未察觉,网上也没有该问题的解决办法,以上步骤仅供参考。


---------------------
作者:AlgoRain
原文:https://blog.csdn.net/rain_web/article/details/105665878
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值