当我尝试下载Excel(.xlsx)文件与axios
有问题,当我打开此文件:
我得到一个错误,按“是”得到以下
我已经尝试了一切,唯一的区别是,axios
文件编码是UTF-8
和postman
文件编码是ANSI
。
这是我的代码:
export const DownloadMonthly = (from, to) => {
return (dispatch) => {
return getAxios()
.get("/monthly/download", { params: {from, to}},
{
responseType: 'arraybuffer',
headers: {
'Content-Type': 'application/vnd.ms-excel'
}})
.then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data], {type: 'application/vnd.ms-excel'}));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', "monthly.xlsx");
document.body.appendChild(link);
link.click();
})
.catch((err) => {
console.error(err);
})
};
};
1条答案
按热度按时间6ioyuze21#
@Zuka Gaprindashvili我认为问题在于你分配给文件的类型。
如果你正在下载一个.xlsx你会想要
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
你的内容类型是为.xls文件