繁体   English   中英

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

[英]Why an .xls file created with python csv and StringIO could be corrupted or unsafe?

我有一个react组件,可以通过我的小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文件,则一切都会正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM