Приложение формирует эксель-файл и сохраняет файл в папке на сервере.
Необходимо отобразить его в браузере (т.е. надо его открыть, чтобы пользователь мог посмотреть информацию в этом файле).
Использовал функцию send_from_directory()
и send_file()
- они позволяют локально (на компьютере пользователя) сохранить этот файл, но нужно не это.
Необходимо открыть файл и показать содержимое файла пользователю в браузере.
@app.route('/excel_reports/cy_status_tn_print', methods=['GET'])
def cy_status_tn_print_xl():
if request.method == 'GET':
idx = request.args.get('idx', type=str)
cont_no = request.args.get('in_cont_no', type=str)
print_date = request.args.get('print_date', type=str)
consignee = request.args.get('consignee', type=str)
cargo_receipt = request.args.get('cargo_receipt', type=str)
cargo_delivery = request.args.get('cargo_delivery', type=str)
printer_no = request.args.get('printer_no', type=int)
# answer
p1, p2 = cy_status_tn_print.write_tn_print(
print_date=print_date,
consignee_id=consignee,
cargo_delivery_id=cargo_delivery,
cargo_receipt_id=cargo_receipt,
idx=idx,
in_cont_no=cont_no,
printer_no=printer_no
)
# print('Answer: {}'.format(answer))
return send_from_directory(directory=p1, filename=p2)
Можно ли так сделать и как?
Открыть в браузере файл MS Excel без гарантированной установки MS Office на стороне клиента нельзя. Есть ряд сторонних js-библиотек, которые могут сделать подобное, но вам придется в проект включить серверную часть на node.js, обрабатывающую xls файлы и передающую из содержимое на браузер. Подробнее здесь
На чистом python с серверной реализацией данной задачи, решение вряд ли будет достаточно тривиальным.
Можно считать файл в DataFrame и отобразить как таблицу:
df = pd.read_excel(puti_fayl, usecols = "F, H, L, R, T, Z, AG, AK, AQ")
tables_s = [df.to_html(classes='data')]
titles_s = df.columns.values
return render_template("rezult_sverka.html", tables = tables_s, titles = titles_s,)
Отображение:
{% for table in tables %}
{{titles[loop.index]}}
{{ table|safe }}
{% endfor %}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть некий звук, который нужно воспроизвести через 3 секунды после загрузки станицы
я задаю для block-left-helper-img float:left;, чтобы текст отображался по правой сторонеНо получаю такой результат