Как получить файл Excel в качестве входных данных, используя Flask, и прочитать его, используя openpyxl? - PullRequest
0 голосов
/ 08 октября 2019

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

app = Flask(__name__)
app.config["DEBUG"] = True

@app.route("/", methods=["GET", "POST"])
def file_summer_page():
    if request.method == ("POST"):
        input_file = request.files["input_file"]
        wb_master = load_workbook(input_file)
        output_data = main(wb_master)
        response = make_response(output_data)
        response.headers["Content-Disposition"] = "attachment; filename=result.csv"
        return response

    return '''
        <html>
            <body>
                <p>Load up the automated eval that MS Forms gives you:</p>
                <form method="post" action="." enctype="multipart/form-data">
                    <p><input type="file" name="input_file" /></p>
                    <p><input type="submit" value="Process the file" /></p>
                </form>
            </body>
        </html>
    '''

Имей меня. Опять же, я не часто использовал Flask, но это моя идея до сих пор. Main (wb_master) по сути вызывает скрипт, который я сделал, чтобы он, надеюсь, мог работать. В настоящий момент возвращается следующее сообщение об ошибке: «AttributeError: объект« SpooledTevenFile »не имеет атрибута« доступный для поиска »». В этом случае я действительно не знаю, что это значит, но я предполагаю, что это связано с тем, что я неправильно читаю файл. Любая помощь будет принята с благодарностью!

...