导出Excel后缀名问题(后端强制修改后缀名xlsx可以打开,前端无法打开)


1.理解需求

本次需求是普通的静态表头导出,一个直接查,另一个需要计算百分率。

所以也没想太多,直接第一个查数据,第二个计算一下组装数据就开始导出了。

2.问题出现

 

 发现后缀名为exe,当时确实是愣了一下,于是我强制改成xlsx。

 

 

 发现一切正常,于是我就没改,就这样和前端进行联调了。

果不其然,该出的问题跑不了,所以下次再遇到这种情况一定要在第一时间解决掉,避免浪费更多的时间。

前端导出文件后缀名为txt,当时确实愣了一下,改为xlsx后缀后发现出错。

 

 重新测试了一下会出现undefined。当时是直接打不开。。。

在前端确认代码基本没问题的前提下,我觉得是后端代码的问题。于是在代码中查找有关于导出及后缀名的方法。

 

 response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。

原文档:https://blog.csdn.net/qq_42108192/article/details/81938674

很详细。(截取部分)

 

根据需求我们导出的是Excel文档。

所以,response.setContentType选择response.setContentType("application/vnd.ms-excel;charset=utf-8");

 

 

 这次后端先用Postman测一下,看看是否还会发生exe后缀名的情况。

 

 可以看到已经默认为xls了。

再测一下前端。发现没有出现异常情况。Bug修复。

总结:下次后端在开发的时候,发现异常情况要及时处理,即使好使,也要想一下为什么会出现这种问题。避免后续出现更多麻烦的事儿从而找不到原因。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM