Чтение данных из Excel файла в Python. Библиотека openpyxl в Python

preview_player
Показать описание
🔥🔥🔥 Инди-курс по Python 🔥🔥🔥

👉👉👉 Свой вопрос по курсу можешь задать в чате

👉👉👉 Также подписывайся на мой телеграмм-канал

Запись данных в Excel файл из JSON. Библиотека openpyxl в Python

Чтение данных из excel файла в Python

Курс по основам python на Степике

Записывайся на курс на Stepic по ООП, где найдешь много практических задач

Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк

В данном группе можете найти информацию о новых видео и задать вопросы
Рекомендации по теме
Комментарии
Автор

🫵 Теория без практики - ничто, поэтому 👇
👉 специально для тебя создал бесплатный топовый курс по Python
👉 В нем тебя ждет:
📗 более 400 практических заданий на программирование
📗 более 250 тестовых заданий на проверку материала
📗 десятки часов видеоматерилов по теории
📗 видеоразборы решения заданий
📗 текстовые материалы по урокам, примеры кода
📗 доступ к закрытому чату с дружественной обстановкой
📗 сертификат в случае успешного прохождения курса

egoroffchannel
Автор

Спасибо за урок. От себя хотел бы добавить, что read_only=True существенно замедляет работу программы. У меня был файл на 1100 строк и работа длилась очень долго, документ парсился около 10-20 минут, не мог понять в чем причина, убрал read_only и все полетело. И вместо функции open лучше использовать load_workbook, это тоже увеличивает скорость работы.

bulik
Автор

Всё понятно, спасибо. Может сделаешь выпуск про запись/сохранение, работа с диаграммой, настройки штрифтов и т.д? Сложно найти русскоязычных программистов, которые так доходчиво объясняют.

salahruziev
Автор

Автор, спасибо большое за проделанную работу! Было очень полезно. Все доступно и крайне понятно!

KindSubscriber
Автор

Добрый день. Спасибо видео было очень полезным.

МаксимРуденко-пд
Автор

спасибо. задачу свою я не решил, но сделал большой шаг благодаря автору.

KobaSmith-zzes
Автор

Код если надо из экселя все засунуть в словарь первый столбец ключ а второй значение
import openpyxl
book = openpyxl.open('first1.xlsx', read_only=True)
sheet = book.active
data={}
for row in range(2, sheet.max_row+1):
data[sheet[row][0].value] = sheet[row][1].value
print(data)

Dayplaylist
Автор

Душевно дружище. Я очень рад этому видосу)

Gerotero-ro
Автор

Отличные уроки! Работа с XL очень интересная)

НиколайМануилов-ид
Автор

Я так понимаю, это подводка к тому что Pandas тоже может парсить Excel? И по моему делает это побыстрее. А так объективно один из лучших каналов про Python. И с дикцией у вас все норм и с донесением материала. Спасибо за труд!

ДенисЖигалов-ьх
Автор

11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить \n
Вот как это будет выглядить:
...
For cell in row:
print(cell.value, end = '\n')

deadliwoolfic
Автор

Отличное видео, благодарю! Сделай пожалуйста урок про работу с csv файлами🙏

limbkid
Автор

Спасибо 🖐️☺️ было бы круто если бы вы показали как быстро сделать словарь из данных в Экселе и как изменять данные в Экселе ☺️придется самому пока сделать в качестве домашнего задания😁

Dayplaylist
Автор

У кого проблемы с работой модуля, попробуйте установить более старый интерпретатор питона. У меня стояла 3.10.10, я скачал 3.10.8 и всё заработало. Видимо библиотека ещё не адаптирована под новый интерпретатор

Дэнчик-ыц
Автор

Конечно интересно, но пока не понял практического применения. Всё, что нужно, можно сделать внутри самого экселя.

Joe_Satriani
Автор

по видео набрасал для себя
# Как считывать данные из ексель excel файла

import openpyxl

book = openpyxl.open("data.xlsx", read_only=True)

sheet = book.active
# работаем с диапазоном cells = sheet['B1':'C11'] - выводится кортеж значений
# для вывода что во втором или третьем столбце кортежа ( то есть имя и год из таблицы
# for name, year, rating in cells:
# print(name.value, year.value, rating.value)
# встроенный метод итер роутс
# for row in sheet.iter_rows(min_row=2, max_row=20, min_col=1, max_col=3):
# print (row) # каждое значение кортеж и его можно обходить
# и ячейки можно ыводить раз кортеж
# for row in shhet.iter_rows(min_row=2, max_row=20, min_col=1, max_col=3):
# for cell in row:
# print(cell.value, end=_' ')
# print()
# если вы будете ничего передавать
# мы обойдем целиком файлик от макс роу до макс column
# for row in shhet.iter_rows():
# for cell in row:
# print(cell.value, end=_' ')
# print()
#
#как получить значения из другого листа ворк шит прдеставляет список из листов
#
#сохраним в переменной шит
#sheet_2 = book.worksheets[2]
#print(sheet_2)
# обращаясь по индексу а2 можно получать другое какое либо значение
#
#print(sheet_2['A2'])
#
#
#

print(sheet[1][0].value)

for row in range(1, sheet.max_row+1): #если файл большой for row in range(1, 10): не 10-ть штук а больше, то можем у листа узнать при помощи атрибута max_row то есть for row in range(1, sheet.max_row)
# год содержиться во второй колонке, рейтинг в третьей, ко всем ячейкам обращаемся к валио value хотим получить содержимое
author = sheet[row][0]
name = sheet[row][1]
year = sheet[row][0]
rating = sheet[row][3].value
print(author, name, year, rating)

# выведем ряд перед автором, print(author, name, year, rating) чтобы понимали какой ряд выводиться сейчас print(row, author, name, year, rating)
# если хотите дойти до конца файлика

КонстантинБойцов-ег
Автор

Спасибо, а как открывать файл с указанием местонахождения через "инпут"? Ну типа через диалоговое окно или ком.строку?

DomNaPechi
Автор

Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???

vtamin
Автор

Может глупый вопрос. Но как запихать data.xlsx в проекты? Я пытался полный адрес файла написать и ничего не получается "Documents/data.xlsx".

ВалерийЯсный
Автор

Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?

Скиталец-щм