導出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