Как показать файл Excel на веб-странице Django - PullRequest
0 голосов
/ 15 мая 2019

Я новичок в Django, и у меня есть приложение Django, в котором после загрузки нескольких файлов Excel выполняется фоновый расчет и сохраняется результат в файле Excel.Мне нужно показать эти файлы Excel с минимальной обработкой на домашней странице Django как датируемые.Я попробовал пакет django-excel с Iframe, чтобы сделать это.Я не могу получить страницу.Пожалуйста, предложите, если код ниже необходимо изменить.Есть ли другие способы решения этой проблемы?

В views.py:

import django_excel as excel
import pyexcel as p
def show_result_files(request,foldername,outputfilenames):
    file_path = path + '/Data/' + foldername
    if os.path.isfile(file_path + 'Final_Results.xlsx'):
        for afile in request.FILES.getlist(outputfilenames):
            combined_sheet = p.get_sheet(file_path + '2020MY EWPR Combined Parts List Final.xlsx')
            combined_sheet.save_as(afile.sortable.html)
            from IPython.display import IFrame
            IFrame("afile.sortable.html", width=600, height=500)

В home.html:

<div class="inline col-md-9" id="showFinalResults">
    <form method="POST" name="showCombined" action="">{% csrf_token %}
        <button name="showCombined" type="submit" class="btn btn-primary">Combined Parts List</button>
    </form>
</div>
<div class="inline col-md-9" id="showFinalResults">
    <form method="POST" name="showCombined" enctype="multipart/form-data" action=''>{% csrf_token %}
        <div class="col">
            <div class="row">
                <span class="btn btn-primary btn-file">
                                        Combined Parts List <input name="SparrowFiles" id="Sparrow" type="file" multiple="">
                </span>
                                    <button name='upload_Sparrow' type="submit" class="btn btn-secondary js-upload-files" data-toggle="modal" data-target="#modal-progress_sp"">Go</button>
            </div>
        </div>
    </form>
</div>

Что я хочу получить в результате Excelфайл, отображаемый на домашней странице при нажатии кнопки «showCombined»

1 Ответ

1 голос
/ 15 мая 2019

Существуют различные варианты, в зависимости от того, хотите ли вы, чтобы данные электронной таблицы были доступны пользователям, которые не могут использовать Excel, или нет.

Самым общим для кнопки является гиперссылка, которая вызывает Django.представление, которое отображает данные электронной таблицы в виде HTML <table>.Существует совершенно потрясающий JavaScript, называемый DataTables , который может сделать такую ​​таблицу почти такой же функциональной, как Excel, в том, что касается отображения.Очень прост в использовании: начните с простого, затем добавьте настройки до совершенства.Абсолютно множество доступных примеров (и большая поддержка с ним в StackOverflow).

Еще один вариант - для вычислений, в которых результаты сохраняются в формате Excel, а также для сохранения в формате PDF вместе с этой страницей и для предоставления этой PDF-ссылки в этой гиперссылке.

Наконец, вы можете сделать цель ссылкисам файл xlsx, и браузер пользователя спросит, как его открыть, если Excel еще не настроен по умолчанию (что, вероятно, будет в боксе Windows. В боксе Linux LibreOffice Calc, вероятно, выполнит почти то же самое).,

...