我有一个反应组件,对我的小api进行ajax调用(使用axios)然后我在" .xls"中得到数据响应。自动下载的文件。一切正常,但是当我打开.xls文件时,Excel会通过以下消息警告我:
' myfile.xls'的文件格式和扩展名不匹配。该文件可以 被腐败或不安全。除非你相信它的来源,否则不要打开它。做 你想打开它吗?
如果我忽略此警告并继续打开该文件,则会打开该文件并显示我正确预期的数据。 但是,为用户看到此消息并不是很优雅,我该如何删除它?
我的代码是下一个:
创建xml的代码:
from io import StringIO
import csv
MyAPIClass(Resource):
(...)
si = StringIO()
cw = csv.writer(si, dialect='excel-tab')
cw.writerows(dataset) #my iterable data list#
output = make_response(si.getvalue())
output.headers["Content-Type"] = "application/vnd.ms-excel"
output.headers["Content-Disposition"] = "attachment; filename=installations.xls"
return output
处理axios(ajax)调用的代码,用于下载由我的api创建的文件:
exportToExcel() {
const FileDownload = require('react-file-download');
axios({method:'post', url: '/myapi_to_excel', headers: {'Accept': ' text/csv'})
.then(res => {
FileDownload(res.data, 'myfile.xls');
});
}
谢谢!!!祝你有愉快的一天!
答案 0 :(得分:0)
这是因为.xls是excel的很旧的扩展名。此扩展适用于97-2003。如果之后更改脚本以创建.xlsx文件,则一切都将正常。