Excel-файлы по-прежнему остаются стандартом в отчётности, аналитике и обмене данными. В Python для работы с ними чаще всего вспоминают openpyxl и xlrd, но между этими библиотеками важно понимать разницу.
Что делает openpyxl
- Работает с файлами .xlsx
- Позволяет читать, изменять и создавать Excel-книги
- Поддерживает листы, ячейки, стили, формулы, диаграммы, объединение ячеек
- Подходит для автоматизации отчётов и генерации таблиц
Пример записи в Excel:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "Имя"
ws["B1"] = "Продажи"
ws.append(["Анна", 120])
ws.append(["Игорь", 95])
wb.save("report.xlsx")
Пример чтения:
from openpyxl import load_workbook
wb = load_workbook("report.xlsx")
ws = wb.active
for row in ws.iter_rows(values_only=True):
print(row)
Что делает xlrd
- Исторически использовалась для чтения Excel
- Сейчас актуальна в основном для старого формата .xls
- Начиная с новых версий, .xlsx не поддерживает
- Для современных задач используется всё реже
Это важный момент: если пользователь ищет, почему xlrd не открывает .xlsx, причина именно в изменениях библиотеки. Для новых Excel-файлов лучше брать openpyxl.
Когда что использовать
- openpyxl — если нужен современный Excel `.xlsx`
- xlrd — только если необходимо читать старые `.xls`
- Для сложной аналитики с таблицами часто удобнее ещё и pandas +
openpyxl
Пример с pandas:
import pandas as pd
df = pd.read_excel("report.xlsx")
print(df.head())
Плюсы openpyxl
- ✅ Активно используется
- ✅ Поддерживает создание файлов с нуля
- ✅ Удобна для автоматизации офисных задач
- ✅ Подходит для бэкенда, ETL и внутренних сервисов
Ограничения
- Не самая быстрая на очень больших файлах
- Не заменяет полноценный Excel по визуальным возможностям
- Для старых `.xls` нужен другой стек
Вывод
Если задача — читать и записывать современные Excel-файлы в Python, выбор почти всегда очевиден: openpyxl. Если же в компании остались архивные `.xls`, тогда может пригодиться xlrd. Для большинства новых проектов связка Python + openpyxl закрывает 90% практических задач по Excel ⚙️📈
Подборка каналов про IT — хороший способ следить за инструментами, библиотеками и практикой разработки. Стоит заглянуть 👀
🗣 Подборки каналов 🧠 Каталог ботов и приложений 🗺 Навигация
Python и работа с Excel: openpyxl, xlrd 📊🐍