0
사용자에게 Excel 파일을 묻는 Flask 응용 프로그램을 만들고 일부 프로그램에서 작업 한 다음 파일을 다시 다운로드하여 사용자가 다운로드 할 수 있도록합니다. (사용하지 않은 수입은 무시하십시오. 나중에 사용하실 계획입니다.)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