При разборе файла Excel возникает ошибка "Нет таких ключей: 'io.excel.zip.reader'". Ошибка

Я пытаюсь разобрать файл типа 'docx' в моем Django-приложении с помощью pandas, но сталкиваюсь с ошибкой "No such keys(s): 'io.excel.zip.reader'". Похоже, что проблема связана с тем, как читается файл, или с самим форматом файла. Я проверил, что файл действительно является файлом Excel с расширением .xlsx, тогда он работает нормально, но когда я добавляю оператор elif для типа файла 'docx', я получаю эту ошибку. Может ли кто-нибудь помочь мне понять, что может быть причиной этой ошибки и как ее решить? Ниже приведен фрагмент кода, который я использую:


import pandas as pd
import json
from docx import Document

if request.method == 'POST':
        form = UserPermissionForm(request.POST, request.FILES)
        if form.is_valid():
            upload_template_instance = form.save()
            template_file = upload_template_instance.template_master

            # Check file extension to determine its type
            if template_file.name.endswith('.xlsx'):
                # Parse the Excel file using Pandas
                df = pd.read_excel(template_file)
                df.fillna('', inplace=True)
                df.columns = ["" if 'Unnamed' in str(col) else col for col in df.columns]
                columns = df.columns.tolist()
                data = df.values.tolist()
            elif template_file.name.endswith('.docx'):
                # Parse the Word document using python-docx
                doc = Document(template_file)
                data = []

                for paragraph in doc.paragraphs:
                    # Extract text from each paragraph
                    text = paragraph.text
                    # Split text into a list based on some delimiter, like tab or comma
                    row = text.split('\t')  # You might need to adjust this based on your document structure
                    data.append(row)

                # Remove empty rows
                data = [row for row in data if any(cell.strip() for cell in row)]
                columns = None  # No columns in Word document

            # Convert data to JSON
            data_json = json.dumps(data)

            return render(request, 'your_template.html', {'form': form, 'columns': columns, 'data': data})

Сначала я попробовал только чтение из excel, и все получилось, но когда я добавил оператор elif для другого типа файла, например word doc, он не позволяет мне читать и преобразовывать данные word в таблицу.

Вернуться на верх