为什么使用 python csv 和 StringIO 创建的.xls文件可能已损坏或不安全?



我有一个反应组件,它对我的小 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');
});
}

谢谢!!!有好的一天!

这是因为.xls是Excel的一个非常古老的扩展。此延期适用于 97-2003。如果您更改脚本以在之后创建.xlsx文件,则一切应该没问题。

最新更新