Решение ошибки "Excel xlsx file; not supported" в xlrd
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
В случае возникновения ошибки xlrd.biffh.XLRDError
рекомендуем использовать библиотеку openpyxl
для работы с файлами .xlsx:
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
:
pip install pandas --upgrade
pip install openpyxl
При чтении файлов Excel через pandas.read_excel
указывайте openpyxl
в качестве движка:
import pandas as pd
df = pd.read_excel('file.xlsx', engine='openpyxl')
Больше не бойтесь файлов
Воспользуйтесь библиотекой os.path.join
для корректного формирования путей к файлам на любой операционной системе:
import os
file_path = os.path.join('folder', 'file.xlsx') # Надежное средство для создания путей!
df = pd.read_excel(file_path, engine='openpyxl')
Безопасное обновление – это умное обновление
Обновление пакетов – это замечательно! Но будьте осторожны при обновлении xlrd
. Если вашему коду необходима эта библиотека, используйте версию не выше 1.2.0
:
pip install 'xlrd==1.2.0'
В то же время, не забывайте о возможных уязвимостях в старых версиях.
Pandas: Прозрачность и забота
Начиная с версии Pandas 1.0.1
работа с Excel стала еще проще благодаря улучшенной поддержке openpyxl
.
Официальные руководства – ваши наилучшие советчики
Регулярно обращайтесь к документации Pandas и openpyxl
для получения актуальной информации о работе с Excel-файлами, включая файлы с макросами .xlsm
.
df = pd.read_excel('macro_file.xlsm', engine='openpyxl')
С этими знаниями управление файлами .xlsm
станет максимально простым.
Визуализация
На данный момент с совместимостью xlrd
обстоит так:
Формат книги | Совместимость с xlrd |
---|---|
.xls (📗) | Поддерживается (✅) |
.xlsx (📘) | Не поддерживается (🚫) |
Просмотрите пример того, какая ошибка возникает при попытке работы с файлом .xlsx:
# Попытка открыть файл '.xlsx'
import xlrd
try:
workbook = xlrd.open_workbook('data.xlsx')
except xlrd.biffh.XLRDError:
print("🔒 xlrd не в состоянии открыть мой .xlsx файл!")
Если xlrd
больше не справляется с чтением файлов Excel, пора перейти на что-то новое.
Не противьтесь openpyxl
Openpyxl
— это многофункциональный инструмент для чтения, редактирования и навигации по файлам .xlsx. Он станет вашим надежным помощником в этих задачах.
Знакомство с листами и ячейками
Навигация по файлам Excel с помощью openpyxl
проста и интуитивно понятна:
sheet = wb["Sheet1"] # получаем доступ к листу
cell = sheet['A1']
print(cell.value)
Доступ к данным и их обработка с использованием openpyxl производится без труда и напряжения.
Почетные упоминания
Рассмотрите следующие мощные библиотеки, если вам требуются более специализированные возможности:
XlsxWriter
для создания Excel-файлов с продвинутым форматированием.pyxlsb
для работы с двоичными файлами Excel (.xlsb
).
Правильный выбор инструмента сделает ваш код ещё эффективнее!
Полезные материалы
- xlrd — документация xlrd 2.0.1 — Список форматов файлов, поддерживаемых xlrd.
- документация openpyxl 3.1.2 — Для чтения и записи файлов Excel 2010 xlsx/xlsm.
- Инструменты ввода-вывода (текст, CSV, HDF5, ...) — документация pandas 2.2.0 — Руководство по работе с Excel через pandas.
- python – Pandas не может открыть файл Excel (.xlsx) – Stack Overflow — Ошибка xlrd XLRDError при работе с .xlsx.
- Создание файлов Excel с Python и XlsxWriter — XlsxWriter — Обучение созданию Excel-файлов с XlsxWriter.
- pyxlsb · PyPI — Чтение двоичных Excel-файлов xlsb.