0Pricing
Python Academy · Урок

Чтение книг

Открывайте и читайте файлы Excel

«Чтение книг» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Excel из Python

openpyxl — стандартная библиотека для чтения и записи современных файлов Excel (формата .xlsx). Она позволяет Python автоматизировать задачи с электронными таблицами, которые в противном случае пришлось бы выполнять вручную.

В этом уроке рассматриваются открытие файлов и чтение их содержимого.

Модель книги

Файлы Excel имеют чёткую иерархию, которую отражает openpyxl:

  • Книга — весь файл
  • Лист — одна вкладка внутри книги
  • Ячейка — отдельное поле в стиле A1 со значением

Вы переходите от книги к листу, а затем к ячейке.

Открытие файла

load_workbook('data.xlsx') читает файл и возвращает книгу. Для больших файлов, которые вы только читаете, передайте read_only=True, чтобы обрабатывать строки потоком и экономить память.

Используйте data_only=True, чтобы читать последний вычисленный результат ячеек с формулами, а не текст формулы.

Выбор листа

wb.active возвращает текущий выбранный лист. wb['Sheet1'] выбирает лист по имени, а wb.sheetnames перечисляет все вкладки. Выбор правильного листа — первый шаг при любом чтении данных.

sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
    print('Selecting sheet:', wanted)
else:
    print('Not found, defaulting to', sheetnames[0])

Чтение отдельной ячейки

Обратитесь к ячейке по её адресу в Excel: ws['A1'].value или по номерам с помощью ws.cell(row=1, column=1).value. Атрибут .value содержит фактические данные: текст, число, дату или None.

Буквы и номера столбцов

Столбцы Excel обозначаются буквами (A, B, ... Z, AA), но openpyxl также использует номера, начиная с 1. Иногда требуется преобразование между этими обозначениями. Ниже показано, как получить номер столбца по его букве.

def col_to_num(letters):
    num = 0
    for ch in letters.upper():
        num = num * 26 + (ord(ch) - ord('A') + 1)
    return num

for c in ['A', 'B', 'Z', 'AA']:
    print(c, '->', col_to_num(c))

Перебор строк

ws.iter_rows(values_only=True) возвращает каждую строку как кортеж значений. Это самый удобный способ читать таблицу. Первая строка обычно содержит заголовок.

Перебирайте строки так же, как любой итерируемый объект.

rows = [
    ('Name', 'Age', 'City'),
    ('Ada', 36, 'London'),
    ('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
    print(dict(zip(header, record)))

Определение используемого диапазона

ws.max_row и ws.max_column показывают, насколько далеко простираются данные. ws.dimensions возвращает строку с диапазоном, например 'A1:C10'. Используйте эти свойства, чтобы не читать пустые ячейки.

Чтение диапазона

Можно выбрать часть листа: ws['A1:C3'] возвращает кортеж кортежей объектов ячеек. Это удобно, когда нужна только часть листа, а не все строки.

Обработка пустых ячеек

Пустые ячейки возвращают None. Настоящие электронные таблицы бывают неидеальными, поэтому при чтении учитывайте отсутствующие значения, например подставляя значение по умолчанию. Это предотвращает сбои на последующих этапах.

raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)

Чтение нескольких листов

Книга может распределять данные по вкладкам, например по одной вкладке на каждый месяц. Переберите wb.sheetnames, выберите каждый лист и прочитайте его по одной и той же схеме. Добавляйте к каждой строке имя листа, чтобы отслеживать источник данных.

Этот шаблон объединяет множество вкладок в один общий набор данных.

Быстрая проверка

Проверьте свои навыки чтения данных.

Итоги

Теперь вы умеете читать файлы Excel:

  • Иерархия: книга > лист > ячейка
  • load_workbook с параметрами read_only и data_only
  • Выбор листов с помощью wb.active, wb['Name'], wb.sheetnames
  • Чтение с помощью .value, iter_rows(values_only=True) и проверка max_row / max_column
  • Обработка None для пустых ячеек

Часто задаваемые вопросы

Урок «Чтение книг» бесплатный?

Да — полный текст урока «Чтение книг» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Чтение книг»?

Открывайте и читайте файлы Excel Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Чтение книг»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Чтение книг
  2. Запись и оформление ячеек
  3. Формулы и диаграммы
  4. Пакетная обработка отчётов
← Назад к Python Academy