В этой статье мы рассмотрим, как читать файл Excel в Flask. Мы будем использовать библиотеку Python Pandas для анализа этих данных Excel как HTML, чтобы упростить нашу работу. Панды дополнительно зависят от библиотеки openpyxl для обработки форматов файлов Excel. Прежде чем мы начнем, убедитесь, что вы установили библиотеки Flask и Pandas вместе с зависимостью openpyxl.
Требуемый модуль:
pip install flask==2.2.2 pip install pandas==1.4.2 pip install openpyxl==3.0.10
Структура файла
Убедитесь, что вы назвали HTML-файл как «upload-excel.html» и поместили его в папку «templates» в корневом каталоге приложения.
HTML-шаблон
Создайте шаблон HTML, который будет отображать пользовательский интерфейс для просмотра параметров просмотра и загрузки файла. Мы разрешили загрузку форматов MS Excel и Open XML только через атрибут accept входного тега.
HTML
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
title
>Upload/View Excel</
title
>
</
head
>
<
body
>
<
h1
>Upload Excel File (.xlsx)</
h1
>
<
form
action
=
"{{ url_for('view') }}"
method
=
"post"
enctype
=
"multipart/form-data"
>
<
input
type
=
"file"
name
=
"file"
accept
=
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
>
<
input
type
=
"submit"
value
=
"Upload"
>
</
form
>
</
body
>
</
html
>
Загрузить и прочитать файл Excel в Flask
Шаг 1: Загрузите файл Excel в Flask
Импортировать нужный модуль
Python3
# Importing required functions
import
pandas
from
flask
import
Flask, render_template, request
Шаг 2: Чтение файла Excel в Flask
Эта функция возвращает индексную страницу для загрузки файла Excel.
Python3
# Root endpoint
@app
.get(
'/'
)
def
upload():
return
render_template(
'upload-excel.html'
)
Шаг 3:
Здесь мы создали приложение Flask, которое будет содержать две конечные точки. Одна конечная точка будет обрабатывать запрос GET от корневого URL-адреса. Это вернет шаблон HTML, который содержит возможность загрузки файлов. Другая конечная точка — «/view», которая обрабатывает запросы POST. Это прочитает загруженный файл и вернет фрагмент HTML для просмотра загруженного Excel в табличном формате в окне браузера. Кроме того, файл будет сохранен в вашем локальном каталоге с помощью функции save().
Python3
# Importing required functions
import
pandas
from
flask
import
Flask, render_template, request
from
fileinput
import
filename
# Flask constructor
app
=
Flask(__name__)
# Root endpoint
@app
.get(
'/'
)
def
upload():
return
render_template(
'upload-excel.html'
)
@app
.post(
'/view'
)
def
view():
# Read the File using Flask request
file
=
request.files[
'file'
]
# save file in loacl directory
file
.save(
file
.filename)
# Parse the data as a Pandas DataFrame type
data
=
pandas.read_excel(
file
)
# Return HTML snippet that will render the table
return
data.to_html()
# Main Driver Function
if
__name__
=
=
'__main__'
:
# Run the application on the local development server
app.run(debug
=
True
)
python main.py
Вывод: