我有一个指向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'因为文件格式或文件扩展名无效......'
谢谢!
答案 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不喜欢这种格式的原因。