Как динамически визуализировать файл Excel в приложении Flask? - PullRequest
0 голосов
/ 19 марта 2020

Я хотел бы создать приложение Flask для динамического рендеринга листа Excel. Мне нужно следующее: кто-то создал (долгое время go) сложный документ Excel, в котором много листов с формулой на всех листах. «Последний» лист Excel отображает ценную информацию (которая может регулярно обновляться кем-то на стороне сервера, например, каждую минуту), и я хотел бы транслировать через веб-сервер. В настоящее время я занимаюсь (но не работает) чтением листа с помощью pandas (или openpyxl) и отображением результатов с помощью приложения Flask:

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/', methods=('POST', 'GET'))
def index():
    html = pd.read_excel("foo.xlsx", sheetname="Sheet_1").to_html()
    return render_template('index.html', html_code=html)

и в моем html template:

{% block content %}
    <h1>From excel:</h1>
    {{ html_code|safe }}
{% endblock %}

Что не работает (от более проблемных c к меньшим): * Pandas (или Openpyxl) не повторяет формулу Excel (она отображает формулу без разрешения их). Есть способ сделать это ? * Как "замедлить" или контролировать скорость обновления sh индексной страницы Flask? * Есть ли способ также отформатировать формат листа Excel? (например, границы, цвета, ....)

Кроме того, я знаю, что моя архитектура довольно неловкая и, вероятно, не работает нормально, поэтому, если у вас, ребята, есть другая простая архитектура, которая позволяет кому-то регулярно редактировать (как и любой другой) минут) Отличник и лист? Единственное ограничение, которое у меня есть, заключается в том, что я должен использовать Excel, и я не хочу каждую минуту сохранять .mht или. html из файла Excel.

Большое спасибо !!

1 Ответ

1 голос
/ 19 марта 2020

Поскольку это не формат для обсуждения мнений о различных архитектурах программного обеспечения, я постараюсь дать вам несколько идей по различным частям вашего вопроса:

Чтобы прочитать (рассчитанное) значение Excel ячейка вместо формулы, вы можете, например, взглянуть на это обсуждение: Python читает только формулу из ячейки Excel

Чтобы прочитать форматирование листа Excel, вы можете, например, посмотрите на это обсуждение: Как прочитать ячейку Excel и сохранить или определить ее формат в Python

Что касается скорости refre sh: поскольку вы не используете веб-сокеты или При любой другой асинхронной связи в вашем коде шаблон будет отображаться только при запросе клиента.

Еще одна общая мысль: если вы просто ищете простой способ сделать лист Excel доступным через HTTP, вы можете просто используйте Flask -Excel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...