Я пытаюсь избежать ошибки
openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.
Следуя информации из stackoverflow, я добавил преобразование файлов с помощью библиотеки pyexcel
.
def put(self, request, format=None, **kwargs):
if 'file' not in request.data:
raise ParseError("Empty content")
f = request.data['file']
filename = f.name
if filename.endswith('.xlsx') or filename.endswith('.xls'):
try:
file = default_storage.save(filename, f)
# This code added
if filename.endswith('.xls'):
import pyexcel
_f, _ = filename.split('.')
pyexcel.save_book_as(file_name=file,
dest_file_name=f'{_f}.xlsx')
####
r = get_full_excel_file_response(file, context)
except InvalidFormatException as e:
.....
Но ошибка все то же самое.
Я ищу самый простой способ конвертировать формат файла в системе Ubuntu и Python 3.7. Для обработки файлов я использую только openpyxl. Все логи c были написаны для xlsx.
UPD !! Похоже, я нашел причину. Файл был преобразован, но старый файл (. xml) продолжал отправляться на обработку. Добавил эту строку
file = default_storage.url(f'{_f}.xlsx')