为什么我的excel加载项损坏了?

时间:2014-04-04 14:08:33

标签: excel apache flask mod-wsgi

我有一个指向excel加载项的链接,我让用户下载。我正在使用flask + mod_wsgi。

@app.route('/link/')
def download_addin():
    parent_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + '/static/'

    response = make_response()
    response.headers['Cache-Control'] = 'no-cache'
    response.headers['Content-Type'] = 'application/vnd.ms-excel.addin.macroEnabled.12'
    response.headers['Content-Disposition'] = 'attachment; filename=my_addin.xlam'
    return response

我下载了该文件,但是当我在Excel中使用它时,我收到警告" Excel无法打开文件' my_addin.xlam'因为文件格式或文件扩展名无效......'

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将文件作为响应的一部分返回。尝试像

这样的东西
@app.route('/link/')
def download_addin():
    parent_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + '/static/'

    with open(os.path.join(parent_dir, 'my_addin.xlam')) as f:
        response = make_response(f.read())
    response.headers['Cache-Control'] = 'no-cache'
    response.headers['Content-Type'] = 'application/vnd.ms-excel.addin.macroEnabled.12'
    response.headers['Content-Disposition'] = 'attachment; filename=my_addin.xlam'
    return response

如果不这样做,您将下载一个空文件。这可能是Excel不喜欢这种格式的原因。