Как отправить xlsx файл запросом на веб-сервис и получить ответ?

Хочу написать веб-сервис, который будет принимать на вход excel файл и отправлять ответ в виде измененного функцией на веб-сервере excel файл. Например, у меня есть excel файл:

введите сюда описание изображения

Я отправляю его на веб-сервер и хочу получить в ответ такой файл ("значение": оборот/3):

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Exord

Отправить можно, как вариант так:

files = {'upload_file': open('file.xlsx','rb')}
r = requests.post(url, files=files)

Естественно вместо url, подставляете свой роут бэкенда, который обрабатывает запросы.

На бэкенде (например фласке) нужно сделать ручку которая принимает файл в пост запросе.

Далее:

  1. Парсите ваш файл через pandas.
  2. Пробегаете по колонке оборот. Совершаете некие манипуляции с данными. И пишете в новый list с итоговыми значениями.
  3. Создаёте в датафрейме pandas новую колонку значение и пишете в неё результаты через цикл по листу с результатами.
  4. После всех манипуляций. Сохраняете в какую нибудь директорию с результатами на сервере. Метод pandas.DataFrame.to_excel() для этого подойдёт.
  5. Если будете использовать/используете Flask, то используйте метод send_from_directory. С указанием пути до этого файла. Соответственно результат посылаете через return роута. return send_from_directory('path_to_file', filename)

Вроде этого достаточно.

→ Ссылка