Чтение данных из Excel файла в Python. Библиотека openpyxl в Python
HTML-код
- Опубликовано: 6 апр 2025
- 🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/cou...
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7...
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_eg...
Запись данных в Excel файл из JSON. Библиотека openpyxl в Python
• Запись данных в Excel ...
Чтение данных из excel файла в Python
stepik.org/cou...
Курс по основам python на Степике
stepik.org/cou...
Записывайся на курс на Stepic по ООП, где найдешь много практических задач
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_e...
python....
В данном группе можете найти информацию о новых видео и задать вопросы
🫵 Теория без практики - ничто, поэтому 👇
🐍 stepik.org/course/63085/promo
👉 специально для тебя создал бесплатный топовый курс по Python
👉 В нем тебя ждет:
📗 более 400 практических заданий на программирование
📗 более 250 тестовых заданий на проверку материала
📗 десятки часов видеоматерилов по теории
📗 видеоразборы решения заданий
📗 текстовые материалы по урокам, примеры кода
📗 доступ к закрытому чату с дружественной обстановкой
📗 сертификат в случае успешного прохождения курса
Спасибо за урок. От себя хотел бы добавить, что read_only=True существенно замедляет работу программы. У меня был файл на 1100 строк и работа длилась очень долго, документ парсился около 10-20 минут, не мог понять в чем причина, убрал read_only и все полетело. И вместо функции open лучше использовать load_workbook, это тоже увеличивает скорость работы.
Всё понятно, спасибо. Может сделаешь выпуск про запись/сохранение, работа с диаграммой, настройки штрифтов и т.д? Сложно найти русскоязычных программистов, которые так доходчиво объясняют.
Автор, спасибо большое за проделанную работу! Было очень полезно. Все доступно и крайне понятно!
спасибо. задачу свою я не решил, но сделал большой шаг благодаря автору.
Добрый день. Спасибо видео было очень полезным.
Супер понятно объяснил. Благодарю! )
Душевно дружище. Я очень рад этому видосу)
Код если надо из экселя все засунуть в словарь первый столбец ключ а второй значение
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)
Спасибо!
11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить
Вот как это будет выглядить:
...
For cell in row:
print(cell.value, end = '
')
Отличные уроки! Работа с XL очень интересная)
Отличное видео, благодарю! Сделай пожалуйста урок про работу с csv файлами🙏
Я так понимаю, это подводка к тому что Pandas тоже может парсить Excel? И по моему делает это побыстрее. А так объективно один из лучших каналов про Python. И с дикцией у вас все норм и с донесением материала. Спасибо за труд!
спасибо, классный урок!
Спасибо 🖐️☺️ было бы круто если бы вы показали как быстро сделать словарь из данных в Экселе и как изменять данные в Экселе ☺️придется самому пока сделать в качестве домашнего задания😁
Спасибо огромное!!! Отличный урок
Спаибо. Доходчивее чем остальные
Лайк однозначно! Отличный урок!
У кого проблемы с работой модуля, попробуйте установить более старый интерпретатор питона. У меня стояла 3.10.10, я скачал 3.10.8 и всё заработало. Видимо библиотека ещё не адаптирована под новый интерпретатор
Большое спасибо!)
Спасибо, а как открывать файл с указанием местонахождения через "инпут"? Ну типа через диалоговое окно или ком.строку?
Конечно интересно, но пока не понял практического применения. Всё, что нужно, можно сделать внутри самого экселя.
Спасибо!
по видео набрасал для себя
# Как считывать данные из ексель 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)
# если хотите дойти до конца файлика
Может глупый вопрос. Но как запихать data.xlsx в проекты? Я пытался полный адрес файла написать и ничего не получается "Documents/data.xlsx".
Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???
Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?
Шикарно
Супер
Здорово. Но очень мало в видео по работе с excel :(
6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж
Мир тебе добрый человек. Какую тему вы используете в Pycharm? Очень понравилась структура иконок и файлов в разделе Project
Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!
здарвствуйте, подскажите как взять значение определенной ячейки и записать в word файл шаблон?
Топ!!!)))
Круто продолжай
СПАСИБО
самое полезное видео.
Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.
thank you
просто красава
День добрый! Подскажите почему цикл сталю до max_row но собирает не все значения, а до предыдущего, приходится ставить max_row+1
Самый главный вопрос, а как данную выгрузку записать в другой файл?
Суперлайк! Спасибо полезно
А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?
Подскажите, плз, почему при записи данных в excel, сохраняются данные только с первой страницы.
path = 'business.xlsx'
df = pd.DataFrame(items_list)
with ExcelWriter(path, engine='openpyxl', mode='a' if os.path.exists(path) else 'w') as writer:
df.to_excel(writer, sheet_name='New', index=False)
Артём, а возможно ли при помощи этого модуля парсить таблицу онлайн? Например, с гугла или яндекса. Если нет, то каким образом можно это провернуть?
Добрый день! вопрос по видео, минута 11:25 - не поняла, почему значение макс-колумн равно 7? где это задано? по умолчанию или я что-то упустила?
Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые
openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column
Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.
А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо
Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?
можно ли узнать информацию на пересечении двух ячеек?
Красавчик.
спасибо)
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
спасибо я теперь у меня есть мысль ка как автоматизировать работу которую я делал 20 минут за 2
А если мне надо поработать только со столбцом, как мне зная только начало и конец столбца вывести инфу. например вынести информацию из [B21:B25]
Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.
Закрывать файл не обязательно после использования?
при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел
Как в конце работы закрыть файл, при том, что read_only = True?
Google Colab говорит: AttributeError: module 'openpyxl' has no attribute 'open'.
Благодарю! Отличный урок. Подскажите, какая IDE используется в видео?
Pycharm
@@egoroffchannel, благодарю
Подскажите в чём смысл просмотра данных Excel в Python? Если можно и так всё увидеть в Excel ? В чем смысл привязки?
А как импортировать openpyxl в visual studio?
Больше видео про Эксель!)
а с либрой эта библиотека будет работать? ну, точнее, с форматом .ods
Пишут, что нет. Но принцип работы такой же
Думал Pandas будет :) Это тоже классная библиотека, если не требуются вычисления
сейчас с экселем разберемся и продолжим пандас
как сделать такое же авто дополнение как у тебя? У меня не работает авто дополнение с этой библиотекой ((((((((
А что это у вас за компилятор в котором вы код пишите? Выглядит очень удобным
PyCharm
Почему в этой библиотеке не работает авто дополнение?
👍😎👍
Подскажите, пожалуйста, почему когда в excel таблице есть пустые ячейки выдает ошибку? Можно ли это как-то обойти?
какая ошибка?
@@egoroffchannel c пустыми ячейками разобрался, была проблема в файле, но возникает другая, когда пытаюсь прочитать в цикле (for row in range(1, sheet.max_row)) - выдает ошибку (for row in range(1, sheet.max_row):
TypeError: 'NoneType' object cannot be interpreted as an integer)
@@bobrovskij100 посмотрите почему он None возвращает
@@egoroffchannel остаются еще пустые строки
@@bobrovskij100 так что выяснил? Пустые как то обрабатывать отдельно надо или что?
But this is really very difficult for me, and even the Excel program is all complicated, and even his language is not knowing it is like space
Можно пожалуйста название этого вида пайтона
подскажите, какой редактор вы используете?
Pycharm
@@egoroffchannel спасибо!
Если отсчёт строк начинается с 1, а колонок с 0, значит ли это, что номера колонок хранятся в списке, а строк иным способом?
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
у меня выдает ошибку AttributeError: module 'openpyxl' has no attribute 'open'
не поставили openpyxl для данного проекта. смотрите видео с начала.)
Не знаю читаешь ли ты тут еще комменты, но все же спрошу, у меня скачивается excel и при попытке пройтись по строкам выводит только одну и такое предупреждение:
UserWarning: Workbook contains no default style, apply openpyxl's default
warn("Workbook contains no default style, apply openpyxl's default")
Если пересохранить файл, то все нормально, но проблема в том что excel у меня большой (500 тыс. строк) и кроме как в рид онли я его не могу использовать, что может помочь в данном случае?
А гугл что говорит по этому предупреждению?
@@egoroffchannel
Кто-то писал вроде что это формат Apache POI и как бы оно все в одном месте хранится для каких-то целей, по индексу получается выводить только первый столбец, в других тюпл не в рендже.
у меня тоже такая картина получается
Медленно работает с большим количеством строк, 1000 строк для этого способа предел. Кто знает как это лечится?
Сообщение = module 'openpyxl' has no attribute 'open'
Код 1 в1 как на видео.
пакет установить нужно. CTRL Shift enter
Интересно. А вы английский знаете?
немного)
а вот и читы для егэ подъехали
Навряд ли нам разрешат устанавливать стороние библиотеки, думаю это будет заблокировано на уровне системы)
А чо это за программа такая? у меня окно вообще по другому выглядит
Вот видео с лучшими способами считывания - ruclips.net/video/YV1pxZW8UfA/видео.html
очень медленно работает такое чтение