Решение ошибки "Excel xlsx file; not supported" в xlrd

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

В случае возникновения ошибки xlrd.biffh.XLRDError рекомендуем использовать библиотеку openpyxl для работы с файлами .xlsx:

Python
Скопировать код
from openpyxl import load_workbook
wb = load_workbook('file.xlsx')
print(wb.active['A1'].value)

Используйте команду pip install openpyxl для установки библиотеки openpyxl. С версии 2.0.0 библиотека xlrd прекратила поддержку формата .xlsx.

Обязательно поддерживайте актуальность пакетов, в частности pandas и openpyxl:

shell
Скопировать код
pip install pandas --upgrade
pip install openpyxl

При чтении файлов Excel через pandas.read_excel указывайте openpyxl в качестве движка:

Python
Скопировать код
import pandas as pd
df = pd.read_excel('file.xlsx', engine='openpyxl')
Кинга Идем в IT: пошаговый план для смены профессии

Больше не бойтесь файлов

Воспользуйтесь библиотекой os.path.join для корректного формирования путей к файлам на любой операционной системе:

Python
Скопировать код
import os

file_path = os.path.join('folder', 'file.xlsx')  # Надежное средство для создания путей!
df = pd.read_excel(file_path, engine='openpyxl')

Безопасное обновление – это умное обновление

Обновление пакетов – это замечательно! Но будьте осторожны при обновлении xlrd. Если вашему коду необходима эта библиотека, используйте версию не выше 1.2.0:

shell
Скопировать код
pip install 'xlrd==1.2.0'

В то же время, не забывайте о возможных уязвимостях в старых версиях.

Pandas: Прозрачность и забота

Начиная с версии Pandas 1.0.1 работа с Excel стала еще проще благодаря улучшенной поддержке openpyxl.

Официальные руководства – ваши наилучшие советчики

Регулярно обращайтесь к документации Pandas и openpyxl для получения актуальной информации о работе с Excel-файлами, включая файлы с макросами .xlsm.

Python
Скопировать код
df = pd.read_excel('macro_file.xlsm', engine='openpyxl')

С этими знаниями управление файлами .xlsm станет максимально простым.

Визуализация

На данный момент с совместимостью xlrd обстоит так:

Формат книгиСовместимость с xlrd
.xls (📗)Поддерживается (✅)
.xlsx (📘)Не поддерживается (🚫)

Просмотрите пример того, какая ошибка возникает при попытке работы с файлом .xlsx:

Python
Скопировать код
# Попытка открыть файл '.xlsx'
import xlrd

try:
    workbook = xlrd.open_workbook('data.xlsx')
except xlrd.biffh.XLRDError:
    print("🔒 xlrd не в состоянии открыть мой .xlsx файл!")

Если xlrd больше не справляется с чтением файлов Excel, пора перейти на что-то новое.

Не противьтесь openpyxl

Openpyxl — это многофункциональный инструмент для чтения, редактирования и навигации по файлам .xlsx. Он станет вашим надежным помощником в этих задачах.

Знакомство с листами и ячейками

Навигация по файлам Excel с помощью openpyxl проста и интуитивно понятна:

Python
Скопировать код
sheet = wb["Sheet1"]  # получаем доступ к листу
cell = sheet['A1']
print(cell.value)

Доступ к данным и их обработка с использованием openpyxl производится без труда и напряжения.

Почетные упоминания

Рассмотрите следующие мощные библиотеки, если вам требуются более специализированные возможности:

  • XlsxWriter для создания Excel-файлов с продвинутым форматированием.
  • pyxlsb для работы с двоичными файлами Excel (.xlsb).

Правильный выбор инструмента сделает ваш код ещё эффективнее!

Полезные материалы

  1. xlrd — документация xlrd 2.0.1 — Список форматов файлов, поддерживаемых xlrd.
  2. документация openpyxl 3.1.2 — Для чтения и записи файлов Excel 2010 xlsx/xlsm.
  3. Инструменты ввода-вывода (текст, CSV, HDF5, ...) — документация pandas 2.2.0 — Руководство по работе с Excel через pandas.
  4. python – Pandas не может открыть файл Excel (.xlsx) – Stack Overflow — Ошибка xlrd XLRDError при работе с .xlsx.
  5. Создание файлов Excel с Python и XlsxWriter — XlsxWriter — Обучение созданию Excel-файлов с XlsxWriter.
  6. pyxlsb · PyPI — Чтение двоичных Excel-файлов xlsb.