Содержание
Краткая памятка по работе с XLS-файлами в Python
- Определите формат файла:.xls (xlrd) или.xlsx (openpyxl).
- Установите необходимую библиотеку через pip.
- Импортируйте библиотеку в скрипт.
- Загрузите файл с помощью соответствующей функции.
- Выберите нужный лист по имени или индексу.
- Для чтения данных используйте методы ячеек или итерацию по строкам.
- Для записи данных создайте новый файл или откройте существующий.
- Не забывайте сохранять изменения после записи.
- Обрабатывайте исключения (FileNotFoundError, PermissionError).
- Используйте виртуальное окружение для изоляции зависимостей.
- Проверяйте версии библиотек для совместимости.
- Для больших объемов данных используйте pandas.
Для начала
Таблица №1
| Sales Date | Sales Person | Amount |
|---|---|---|
| 12/05/18 | Sila Ahmed | 60000 |
| 06/12/19 | Mir Hossain | 50000 |
| 09/08/20 | Sarmin Jahan | 45000 |
| 07/04/21 | Mahmudul Hasan | 30000 |
Этот файл мы и будем читать с помощью различных библиотек Python в следующей части этого руководства.
Что такое Openpyxl и когда ее использовать
Прежде чем углубиться в работу с Excel в Python, убедитесь, что знаете базу. Если вы только начинаете путь в программировании, обратите внимание на бесплатный курс «Основы Python». Он подходит всем, кто хочет применять этот язык в работе или учебе — достаточно лишь уверенно пользоваться компьютером. Здесь разбирают ключевые понятия, от переменных к функциям. Это фундамент, после которого легче переходить к более сложной информации.
Openpyxl — это открытая библиотека «Питона» для работы с Excel -файлами формата.xlsx. Она позволяет программно читать, изменять и создавать таблицы без необходимости открывать эксель вручную. Поддерживает как простые операции (изменение значений ячеек), так и продвинутые — стили, форматирование, фильтры, объединение ячеек, работу с формулами и создание графиков. Ее используют для:
- Экспорт из Python в Excel
- Импорт из Excel в Python
- Преобразование форматов (CSV → Excel)
- Поиск ошибок в данных
- Проверка шаблонов на соответствие стандартам
- Генерация красивых таблиц с форматированием
- Добавление формул и диаграмм
- Создание многостраничных документов
- Сбор данных из многих файлов
- Создание отчетов по шаблону
- Ежемесячное обновление таблиц
Openpyxl vs Pandas vs другие библиотеки
Когда речь заходит о том, как прочитать эксель-файл в «Питоне», возникает логичный вопрос — чем пользоваться?
подходит, если нужно взаимодействовать с файлом «как есть». Например:
Openpyxl
- заполнить шаблон отчета, куда руководитель уже добавил стили;
- изменить пару значений в готовой таблице и сохранить форматирование;
- обновить формулы или добавить фильтр.
- быстро отфильтровать 50 тысяч строк;
- посчитать средние показатели по отделам;
- объединить несколько таблиц в одну.
На выходе вы чаще всего получаете сырые данные, а не красиво оформленный файл. Эта библиотека читает и записывает таблицы, но не сохраняет цвета, границы и прочее оформление.
пригодится, когда нужно создать новый файл с нуля и сделать его максимально аккуратным. Например, если вы генерируете отчет автоматически каждое утро. Минус — библиотека не открывает существующие файлы, только создает новые.
Xlsxwriter
Кстати, в нашем блоге есть подробный разбор инструментов для анализа данных и ML. Статья поможет быстро разобраться, что выбрать под конкретную задачу.
Установка Openpyxl
Перед тем как переходить к работе с библиотекой, нужно правильно установить все инструменты, от которых она зависит. Ниже — пошаговая инструкция, рассчитанная даже на тех, кто никогда не работал с Python и командной строкой. Разберем, что именно нужно установить, зачем это делается, какие команды использовать в разных операционных системах и как избежать типичных ошибок.
Шаг 1. Подготовка
Откройте терминал или командную строку, в зависимости от вашей операционной системы.
- Windows: нажмите Win → введите cmd → откройте Командную строку (или используйте PowerShell).
- macOS: откройте Terminal (Spotlight → Terminal).
- Linux: откройте терминал (Ctrl+Alt+T или через меню).
Шаг 2. Установите Python
Вы должны увидеть версию, например Python 3.11.4. Если команда не найдена — вернитесь к установке и убедитесь, что галочка PATH поставлена.
Шаг 3. Проверьте pip
Менеджер пакетов pip — это инструмент, с помощью которого устанавливаются библиотеки (в том числе openpyxl).
Если в системе есть и python, и python3, в командах ниже используйте ту форму, которая у вас работает.
Совет
Иногда команда pip не срабатывает, потому что система не знает, где она лежит. Это случается:
- В Windows, если PATH настроен неправильно или pip не установился.
- В macOS/Linux, если PATH не включает путь к pip.
- Если установлено несколько версий Python, и одна мешает другой.
В таких случаях лучше использовать команду, привязанную к конкретной версии Python:
Шаг 4. Установите openpyxl
Появятся строки загрузки и в конце — Successfully installed openpyxl…. Если требуется sudo на Linux/macOS:
Шаг 5. Сделайте быстрый тест
Запустите команду python test_openpyxl.py или python3 test_openpyxl.py.
Шаг 6. Используйте виртуальную среду
Виртуальная среда — это «отдельная папка» с собственными библиотеками. Рекомендуется, если у вас много проектов и не хочется, чтобы они конфликтовали.
После активации в командной строке обычно появляется префикс (myenv). Все, что вы установите в активной среде, не повлияет на другие проекты.
Первые шаги: создание и загрузка файлов
Когда openpyxl установлена, можно переходить к работе с файлами. В этом разделе разберем самые первые и самые частые действия. Простые операции — фундамент, на котором строится любая автоматизация: от заполнения отчетов до подготовки шаблонов и преобразования данных.
Как создать новый Excel-файл
После запуска скрипта рядом появится файл — полностью рабочий документ, который можно открыть в Excel.
new_file.xlsx
Лайфхаки для начинающих
Библиотека openpyxl не сразу записывает изменения сразу, а только в момент save(). Если что-то пропало, значит, вы забыли сохранить.
Если вы заранее знаете, какие вам нужны колонки, то заполняйте заголовки сразу:
Excel может блокировать файл, и скрипт выдаст ошибку «Permission denied».
Как открыть существующий файл
Работа с реальными данными часто начинается не с создания, а с открытия уже существующего файла: отчета от коллеги, выгрузки из CRM, документа-шаблона или таблицы, которую нужно автоматически обновить. В openpyxl это тоже делается очень просто.
Лайфхак
Это ускорит загрузку и снизит расход памяти, но редактировать такой файл нельзя.
Работа с листами
В openpyxl лист — это объект Worksheet, и с ним можно делать практически все: создавать новые страницы, переименовывать существующие, перемещать, копировать и удалять. Ниже — основные операции, которые пригодятся в любой автоматизации.
При копировании листов через copy_worksheet() копируются только ячейки, стили, гиперссылки и комментарии. Изображения, диаграммы и некоторые другие атрибуты не переносятся. Кроме того, нельзя копировать листы между разными книгами, а также в режиме только для чтения или записи.
Чтение данных из ячеек
Этот базовый навык при работе с openpyxl. В реальных задачах это может быть проверка показателей в отчете, извлечение данных для аналитики, автоматизация сложных Excel-шаблонов или подготовка итоговых сводок.
Чтение конкретной ячейки
Представьте, что вы работаете аналитиком в компании, где каждый менеджер по продажам раз в неделю отправляет вам эксель-отчет. В каждом файле есть столбец с итоговой выручкой:
Таблица №2
| Менеджер | Неделя | Выручка |
| Иванов | 3 | 156000 |
Вам нужно собрать выручку из всех файлов в один список и затем построить общий график продаж.
Теперь вы можете запустить это в цикле по всем файлам, агрегировать данные и автоматически готовить сводный отчет. Без openpyxl такую работу пришлось бы выполнять вручную.
Чтение столбца целиком
Используется, когда нужно обработать один параметр, например «Выручка». Обратите внимание, эти способы читают все ячейки в строке или столбце, включая пустые, вплоть до максимально возможных границ листа. Например, до строки 1 048 576. Это может быть неэффективно для больших файлов. Чтобы работать только с заполненной частью таблицы, лучше использовать ws.iter_rows() без указания границ или вместе с.
Полезно знать
- Даты читаются как объекты datetime.
- Пустые ячейки возвращают None.
- Формулы возвращают сами себя.
Если файл был сохранен Excel и открыт с data_only=True, то в.value будет результат вычисления формулы на момент последнего сохранения.
Если файл создан openpyxl и в него записаны формулы, то при открытии с data_only=True вы, скорее всего, получите None, так как движок формул openpyxl их не вычисляет.
Так вы не загрузите в память все сразу, что критично для файлов 50–200 МБ.
Запись и изменение данных
Это ключ к автоматизации любых рутинных процессов. Openpyxl делает работу с Excel удобной и гибкой: можно прописывать значения, формулы, делать массовые правки, добавлять строки, вставлять данные из Python-скриптов или внешних источников (API, базы данных, CRM).
Добавление строки
Команда () добавляет строку в первую пустую строку после имеющихся данных. Если у вас есть отступы или пустые строки внутри таблицы, это может сработать некорректно. Метод ищет самую нижнюю заполненную строку в столбце A (или в первом столбце, если A пуст) и добавляет данные ниже.
Массовое изменение данных
Таблица №3
| Менеджер | Выручка | Бонус |
| Иванов | 350000 | 25000 |
| Петров | 120000 | 10000 |
Подобный сценарий встречается повсеместно, от HR-отчетов до финансовых моделей.
Продвинутые техники работы с openpyxl
Менеджеры хотят получать не просто CSV с цифрами, а аккуратные таблицы, формулы, фильтры и графики. Продвинутые инструменты openpyxl позволяют собрать такие отчеты автоматически и под корпоративные стандарты.
Например, HR-отдел формирует данные по сотрудникам: библиотека помогает автоматически раскрасить KPI-показатели в зависимости от результатов, добавить формулы расчета бонусов и построить график эффективности по месяцам.
Работа со стилями и форматированием
Можно программно управлять практически каждым аспектом внешнего вида документа: шрифтами, выравниванием, цветами, границами, заливками, форматами чисел и структурой таблиц. К примеру, автоматически подсвечивать товары с низкой маржой красным, а топы продаж — зеленым. Это позволяет руководителю за секунду понять структуру ассортимента без детального анализа строк.
- создание корпоративных шаблонов с единым стилем;
- выделение важных метрик цветом;
- форматирование дат, валют, процентов;
- настройку ширины столбцов, выравнивание текста, перенос строк;
- использование условного форматирования.
Работа с формулами
Допустим, отдел продаж часто формирует еженедельный отчет по выручке. С помощью кода легко:
- выгрузить данные;
- проставить формулы подсчета маржи, НДС, комиссий;
- добавить формулы сравнения с предыдущей неделей;
- автоматически вычислять процентное изменение.
Openpyxl позволяет вставлять в клетки формулы в их естественном синтаксисе, а эксель затем автоматически пересчитывает их при открытии файла. Можно создавать динамические расчеты: суммирование, средние значения, работу с датами, VLOOKUP/XLOOKUP, IF, агрегатные функции, формулы с диапазонами и многое другое.
Добавление фильтров и работа с ними
Openpyxl поддерживает добавление автоматических фильтров для любого диапазона, включая таблицы с десятками тысяч строк. А еще позволяет:
- сортировать конкретный диапазон;
- превращать диапазон в полноценную Excel-таблицу;
- сохранять пользовательские фильтры при генерации файлов;
- комбинировать фильтры с форматированием.
Создание простых графиков
Это библиотека Python поддерживает создание основных типов диаграмм: линейных, столбчатых, круговых, гистограмм, комбинированных и др. А также допускает:
- выбирать тип диаграммы;
- указывать диапазоны данных и подписей;
- управлять размером и положением графика;
- добавлять несколько рядов данных;
- размещать графики на отдельных листах.
Чтение Excel-файла с помощью xlrd
Библиотека xlrd не устанавливается вместе с Python по умолчанию, так что ее придется установить. Последняя версия этой библиотеки, к сожалению, не поддерживает Excel-файлы с расширением.xlsx. Поэтому устанавливаем версию 1.2.0. Выполните следующую команду в терминале:
Затем используем вложенный цикл for. С его помощью мы будем перемещаться по ячейкам, перебирая строки и столбцы. Также в скрипте используются две функции range() для определения количества строк и столбцов в таблице.
Для чтения значения отдельной ячейки таблицы на каждой итерации цикла воспользуемся функцией cell_value(). Каждое поле в выводе будет разделено одним пробелом табуляции.
import xlrd # Open the Workbook workbook = xlrd.open_workbook(«») # Open the worksheet worksheet = workbook.sheet_by_index(0) # Iterate the rows and columns for i in range(0, 5): for j in range(0, 3): # Print the cell values with tab space print(worksheet.cell_value(i, j), end=’\t’) print(»)
Чтение Excel-файла с помощью openpyxl
Openpyxl – это еще одна библиотека Python для чтения файла.xlsx, и она также не идет по умолчанию вместе со стандартным пакетом Python. Чтобы установить этот модуль, выполните в терминале следующую команду:
После завершения процесса установки можно начинать писать код для чтения файла.
Функцию range() используем для чтения строк таблицы, а функцию iter_cols() — для чтения столбцов. Каждое поле в выводе будет разделено двумя пробелами табуляции.
import openpyxl # Define variable to load the wookbook wookbook = openpyxl.load_workbook(«») # Define variable to read the active sheet: worksheet = # Iterate the loop to read the cell values for i in range(0, worksheet.max_row): for col in worksheet.iter_cols(1, worksheet.max_column): print(col[i].value, end=»\t\t») print(»)
Чтение Excel-файла с помощью pandas
Если вы не пользовались библиотекой pandas ранее, вам необходимо ее установить. Как и остальные рассматриваемые библиотеки, она не поставляется вместе с Python. Выполните следующую команду, чтобы установить pandas из терминала.
После завершения процесса установки создаем файл Python и начинаем писать следующий скрипт для чтения файла.
import pandas as pd # Load the xlsx file excel_data = pd.read_excel(») # Read the values of the file in the dataframe data = (excel_data, columns=[‘Sales Date’, ‘Sales Person’, ‘Amount’]) # Print the content print(«The content of the file is:\n», data)
Результат работы этого скрипта отличается от двух предыдущих примеров. В первом столбце печатаются номера строк, начиная с нуля. Значения даты выравниваются по центру. Имена продавцов выровнены по правому краю, а сумма — по левому.
Частые ошибки
Openpyxl работает только с форматом. перед загрузкой файла проверяйте его расширение.
.xlsxКак избежать:
После внесения изменений файл не обновляется. всегда завершайте скрипт сохранением. Особенно если генерируете отчеты автоматически.
Как избежать:
Большие таблицы грузятся медленно или потребляют много памяти. используйте режимы read_only=True и write_only=True, если файл не нужно модифицировать полностью.
Как избежать:
Большие циклы со стилями сильно замедляют работу. применяйте стили к диапазонам или заранее создавайте объект стиля и переиспользуйте его.
Как избежать:
Команда pip install openpyxl не работает или ставит не ту версию. запускайте установку через: python -m pip install openpyxl.
Как избежать:
Ответы на популярные вопросы по открытию XLS-файлов в Python
Вопрос: Какая библиотека лучше всего подходит для чтения XLS-файлов?
Ответ: Для старых форматов.xls используйте xlrd, для.xlsx — openpyxl, а для анализа данных — pandas.
Вопрос: Могу ли я открыть XLS-файл без установки дополнительных библиотек?
Ответ: Нет, стандартная библиотека Python не поддерживает Excel-файлы, требуется установка сторонних модулей.
Вопрос: Как установить openpyxl?
Ответ: Выполните команду pip install openpyxl в терминале или командной строке.
Вопрос: Что делать, если openpyxl не читает файл?
Ответ: Проверьте, что файл не поврежден, имеет расширение.xlsx, и что у вас установлена последняя версия библиотеки.
Вопрос: Как прочитать конкретную ячейку из Excel-файла?
Ответ: Используйте метод sheet.cell(row, column).value, указав номер строки и столбца.
Вопрос: В чем разница между xlrd и openpyxl?
Ответ: xlrd работает только со старым форматом.xls, а openpyxl — с современным.xlsx.
Вопрос: Как прочитать все данные из листа Excel?
Ответ: Используйте pandas.read_excel() или пройдитесь по всем строкам и столбцам через openpyxl.
Вопрос: Можно ли записывать данные в Excel-файл с помощью Python?
Ответ: Да, openpyxl и pandas поддерживают запись и изменение данных в файлах.xlsx.
Вопрос: Как обработать ошибку FileNotFoundError при открытии файла?
Ответ: Убедитесь, что путь к файлу указан верно, и файл существует в указанной директории.
Вопрос: Поддерживает ли openpyxl формулы Excel?
Ответ: Да, openpyxl позволяет читать и записывать формулы, но не вычисляет их автоматически.


























