0
我正在創建一個Flask應用程序,該應用程序提示用戶輸入Excel文件,執行一些操作,然後將文件返回給用戶,以便他們可以下載它。 (請忽略任何未使用的進口,我計劃在以後使用它們。)返回Flask應用程序中的Excel文件
我有我的功能下降,我只是不知道如何將文件發送回用戶,以便他們可以下載它。預先感謝任何幫助!
這是我到目前爲止有:(注:我也不太清楚,如果我實現正確上傳功能)
from openpyxl import load_workbook
from flask import Flask, request, render_template, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return """<title>Upload new File</title>
<h1>Upload new File</h1>
<form action="/uploader" method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form>"""
@app.route('/uploader', methods = ['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file']
f.save(f.filename)
return process(f.filename)
def process(filename):
routename = ['ZYAA', 'ZYBB', 'ZYCC']
supervisors = ['X', 'Y', 'Z']
workbook = load_workbook(filename)
worksheet = workbook.active
worksheet.column_dimensions.group('A', 'B', hidden=True)
routes = worksheet.columns[2]
i = 2
worksheet['D1'] = 'Supervisor'
for route in routes:
if route.value in routename:
pos = routes.index(route)
worksheet['D' + str(i)].value = supervisors[pos]
print (route.value)
i += 1
workbook.save(filename)
if __name__ == '__main__':
app.run(debug = True, host = '0.0.0.0')
感謝您的答案!當我開始工作時我會嘗試他們。我的上傳功能是否正確,是否將文件正確傳遞給我的處理功能? – Harrison
我想它會起作用。 –
我真的不確定如何做stringIO的方式。我如何將我的excel文件寫入到stringIO對象?我目前正在這樣做: return send_file(filename,attachment_filename ='output.xls',as_attachment = True) – Harrison