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修復。
總結:下次后端在開發的時候,發現異常情況要及時處理,即使好使,也要想一下為什么會出現這種問題。避免后續出現更多麻煩的事兒從而找不到原因。