我有一个简单的Flask应用程序,我希望它能够处理上传的excel文件并在网页中显示它的数据。到目前为止,我有一个页面来上传excel文件。
main.py
from flask import Flask, render_template, send_file, request
from flask_uploads import UploadSet, configure_uploads, DOCUMENTS, IMAGES
app = Flask(__name__)
#the name 'datafiles' must match in app.config to DATAFILES
docs = UploadSet('datafiles', DOCUMENTS)
app.config['UPLOADED_DATAFILES_DEST'] = 'static/uploads'
configure_uploads(app, docs)
@app.route("/", methods=['GET'])
def index():
# return send_file("templates/index.html")
return render_template('index.html')
@app.route("/upload", methods = ['GET', 'POST'])
def upload():
#user_file is the name value in input element
if request.method == 'POST' and 'user_file' in request.files:
filename = docs.save(request.files['user_file'])
return filename
return render_template('upload.html')
@app.route("/mergedata", methods=['GET'])
def merge_data():
return send_file("templates/mergeDataPage.html")
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
upload.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>upload</title>
</head>
<body>
<form method="POST" enctype=multipart/form-data action ="{{url_for('upload')}}">
<input type="file" name="user_file">
<input type="submit">
</form>
</body>
</html>
上传文件后,我想使用另一个python脚本处理这个excel数据 - 这个脚本将获取excel文件,删除特殊字符并转换为csv文件/输出。我想在网页上显示csv输出。
这个想法是让用户上传文件,按一个按钮清理数据并将结果打印在输出框中。我该如何构建类似这种情况的东西呢?
我对Flask很新,但到目前为止,学习这个很酷的Web框架已经非常令人兴奋了。感谢您的帮助,谢谢!
答案 0 :(得分:1)
您可以使用pandas模块并首先转换excel文件。
import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
Pandas对于处理csv文件非常引人注目,以下代码将是您阅读csv并将整个列保存到变量中所需的全部内容:
import pandas as pd
df = pd.read_csv(csv_file)
saved_column = df.column_name #you can also use df['column_name']
例如,如果您想将列Names中的所有信息保存到变量中,这就是您需要做的:
names = df.Names