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

  Переглядів 92,313

egoroff_channel

egoroff_channel

3 роки тому

🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/course/63085/promo
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7caBlNDM6
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_egoroff
Запись данных в Excel файл из JSON. Библиотека openpyxl в Python
• Запись данных в Excel ...
Чтение данных из excel файла в Python
stepik.org/course/63085/syllabus
Курс по основам python на Степике
stepik.org/course/72969/promo
Записывайся на курс на Stepic по ООП, где найдешь много практических задач
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы

КОМЕНТАРІ: 107
@bulik1384
@bulik1384 Рік тому
Спасибо за урок. От себя хотел бы добавить, что read_only=True существенно замедляет работу программы. У меня был файл на 1100 строк и работа длилась очень долго, документ парсился около 10-20 минут, не мог понять в чем причина, убрал read_only и все полетело. И вместо функции open лучше использовать load_workbook, это тоже увеличивает скорость работы.
@salahruziev732
@salahruziev732 3 роки тому
Всё понятно, спасибо. Может сделаешь выпуск про запись/сохранение, работа с диаграммой, настройки штрифтов и т.д? Сложно найти русскоязычных программистов, которые так доходчиво объясняют.
@user-fq6dq8vv2k
@user-fq6dq8vv2k Рік тому
Автор, спасибо большое за проделанную работу! Было очень полезно. Все доступно и крайне понятно!
@user-oy4pq9nf6x
@user-oy4pq9nf6x Рік тому
Супер понятно объяснил. Благодарю! )
@user-sd4pv6bc8v
@user-sd4pv6bc8v 3 роки тому
Душевно дружище. Я очень рад этому видосу)
@user-fc6nr8cr4p
@user-fc6nr8cr4p 3 роки тому
Отличные уроки! Работа с XL очень интересная)
@bessonov5819
@bessonov5819 2 роки тому
Спасибо огромное!!! Отличный урок
@limb0kid
@limb0kid 2 роки тому
Отличное видео, благодарю! Сделай пожалуйста урок про работу с csv файлами🙏
@soundmorozov
@soundmorozov 3 роки тому
Лайк однозначно! Отличный урок!
@KobaSmith-zz7es
@KobaSmith-zz7es 5 місяців тому
спасибо. задачу свою я не решил, но сделал большой шаг благодаря автору.
@user-bg1ze2mx9q
@user-bg1ze2mx9q 3 роки тому
Большое спасибо!)
@user-nf8mm8uq7k
@user-nf8mm8uq7k Рік тому
Добрый день. Спасибо видео было очень полезным.
@korleone72
@korleone72 Рік тому
спасибо, классный урок!
@user-yu1zs1nt6m
@user-yu1zs1nt6m 3 роки тому
Спасибо!
@Dayplaylist
@Dayplaylist 2 роки тому
Спасибо 🖐️☺️ было бы круто если бы вы показали как быстро сделать словарь из данных в Экселе и как изменять данные в Экселе ☺️придется самому пока сделать в качестве домашнего задания😁
@Joe_Satriani
@Joe_Satriani 2 дні тому
Конечно интересно, но пока не понял практического применения. Всё, что нужно, можно сделать внутри самого экселя.
@Tribunall
@Tribunall 3 роки тому
Спаибо. Доходчивее чем остальные
@user-vr5oz1th6e
@user-vr5oz1th6e 3 роки тому
Я так понимаю, это подводка к тому что Pandas тоже может парсить Excel? И по моему делает это побыстрее. А так объективно один из лучших каналов про Python. И с дикцией у вас все норм и с донесением материала. Спасибо за труд!
@maxbrenson21
@maxbrenson21 3 роки тому
Шикарно
@Dayplaylist
@Dayplaylist 2 роки тому
Код если надо из экселя все засунуть в словарь первый столбец ключ а второй значение 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)
@galinaoliver5624
@galinaoliver5624 Рік тому
Спасибо!
@xi_py
@xi_py 3 роки тому
Круто продолжай
@serzhik13xxx
@serzhik13xxx 2 роки тому
Больше видео про Эксель!)
@vitsol2
@vitsol2 3 роки тому
Супер
@Cahdro
@Cahdro 3 роки тому
СПАСИБО
@housesaroma4060
@housesaroma4060 3 роки тому
Топ!!!)))
@deadliwoolfic6390
@deadliwoolfic6390 Рік тому
11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить Вот как это будет выглядить: ... For cell in row: print(cell.value, end = ' ')
@user-bc7nx7qn7c
@user-bc7nx7qn7c Рік тому
У кого проблемы с работой модуля, попробуйте установить более старый интерпретатор питона. У меня стояла 3.10.10, я скачал 3.10.8 и всё заработало. Видимо библиотека ещё не адаптирована под новый интерпретатор
@user-fi1vj8ob4y
@user-fi1vj8ob4y 2 роки тому
Мир тебе добрый человек. Какую тему вы используете в Pycharm? Очень понравилась структура иконок и файлов в разделе Project
@Alex-hh5oe
@Alex-hh5oe 3 роки тому
Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!
@mirlan19
@mirlan19 2 роки тому
thank you
@user-uv9dl3yd4q
@user-uv9dl3yd4q 2 роки тому
просто красава
@dimk7983
@dimk7983 3 роки тому
Суперлайк! Спасибо полезно А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?
@user-kp5by6qn8p
@user-kp5by6qn8p 3 роки тому
по видео набрасал для себя # Как считывать данные из ексель 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) # если хотите дойти до конца файлика
@gaben_aTan
@gaben_aTan 2 роки тому
Здорово. Но очень мало в видео по работе с excel :(
@user-ny2qu9vw9p
@user-ny2qu9vw9p 2 роки тому
самое полезное видео.
@web-writer4769
@web-writer4769 Рік тому
Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.
@user-xk9lj9mg5m
@user-xk9lj9mg5m 3 роки тому
здарвствуйте, подскажите как взять значение определенной ячейки и записать в word файл шаблон?
@alexhope2629
@alexhope2629 Рік тому
Артём, а возможно ли при помощи этого модуля парсить таблицу онлайн? Например, с гугла или яндекса. Если нет, то каким образом можно это провернуть?
@wowik1992
@wowik1992 2 роки тому
Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?
@3childrenand3kittens21
@3childrenand3kittens21 3 роки тому
Красавчик.
@egoroffchannel
@egoroffchannel 3 роки тому
спасибо)
@DomNaPechi
@DomNaPechi 11 місяців тому
Спасибо, а как открывать файл с указанием местонахождения через "инпут"? Ну типа через диалоговое окно или ком.строку?
@MykhailoKrasulin
@MykhailoKrasulin 3 роки тому
можно ли узнать информацию на пересечении двух ячеек?
@who-1880
@who-1880 3 роки тому
👍😎👍
@user-kj7yz4sl2o
@user-kj7yz4sl2o 2 роки тому
Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.
@speerit9673
@speerit9673 9 місяців тому
спасибо я теперь у меня есть мысль ка как автоматизировать работу которую я делал 20 минут за 2
@v1tamin91
@v1tamin91 Місяць тому
Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???
@user-tw2te2et6d
@user-tw2te2et6d Рік тому
День добрый! Подскажите почему цикл сталю до max_row но собирает не все значения, а до предыдущего, приходится ставить max_row+1
@user-vz4iw2ib4t
@user-vz4iw2ib4t Рік тому
Может глупый вопрос. Но как запихать data.xlsx в проекты? Я пытался полный адрес файла написать и ничего не получается "Documents/data.xlsx".
@user-yi9hh3wx5o
@user-yi9hh3wx5o 6 місяців тому
Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Рік тому
Благодарю! Отличный урок. Подскажите, какая IDE используется в видео?
@egoroffchannel
@egoroffchannel Рік тому
Pycharm
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Рік тому
@@egoroffchannel, благодарю
@python689
@python689 Рік тому
Подскажите, плз, почему при записи данных в 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)
@zzarryadd
@zzarryadd 2 роки тому
Как в конце работы закрыть файл, при том, что read_only = True?
@leonard8336
@leonard8336 3 роки тому
а с либрой эта библиотека будет работать? ну, точнее, с форматом .ods
@egoroffchannel
@egoroffchannel 3 роки тому
Пишут, что нет. Но принцип работы такой же
@sarvarbekmadgapirov7169
@sarvarbekmadgapirov7169 Рік тому
А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо
@whoiam7138
@whoiam7138 3 роки тому
Думал Pandas будет :) Это тоже классная библиотека, если не требуются вычисления
@egoroffchannel
@egoroffchannel 3 роки тому
сейчас с экселем разберемся и продолжим пандас
@elaeff6585
@elaeff6585 Рік тому
Самый главный вопрос, а как данную выгрузку записать в другой файл?
@user-qe7dr1zp2x
@user-qe7dr1zp2x Рік тому
Закрывать файл не обязательно после использования?
@illenanimam3728
@illenanimam3728 3 роки тому
Добрый день! вопрос по видео, минута 11:25 - не поняла, почему значение макс-колумн равно 7? где это задано? по умолчанию или я что-то упустила?
@egoroffchannel
@egoroffchannel 3 роки тому
Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column
@user-xu1xr1eg7n
@user-xu1xr1eg7n 3 роки тому
Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.
@SemyonMazepin
@SemyonMazepin 8 місяців тому
6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж
@nikitoszdanov8257
@nikitoszdanov8257 2 роки тому
А что это у вас за компилятор в котором вы код пишите? Выглядит очень удобным
@user-pc7do4wr7q
@user-pc7do4wr7q 10 місяців тому
PyCharm
@motomotovich8598
@motomotovich8598 Рік тому
А если мне надо поработать только со столбцом, как мне зная только начало и конец столбца вывести инфу. например вынести информацию из [B21:B25]
@ilyasmustafin2593
@ilyasmustafin2593 3 роки тому
Можно пожалуйста название этого вида пайтона
@user-matiza
@user-matiza 2 роки тому
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
@user-kb3bi4rj5c
@user-kb3bi4rj5c Рік тому
А как импортировать openpyxl в visual studio?
@artemalferov4020
@artemalferov4020 11 місяців тому
при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел
@user-wu2qw5jj2v
@user-wu2qw5jj2v 3 роки тому
подскажите, какой редактор вы используете?
@egoroffchannel
@egoroffchannel 3 роки тому
Pycharm
@user-wu2qw5jj2v
@user-wu2qw5jj2v 3 роки тому
@@egoroffchannel спасибо!
@user-jh1sb8be9e
@user-jh1sb8be9e 2 роки тому
Google Colab говорит: AttributeError: module 'openpyxl' has no attribute 'open'.
@777ElfenLied777
@777ElfenLied777 3 роки тому
Если отсчёт строк начинается с 1, а колонок с 0, значит ли это, что номера колонок хранятся в списке, а строк иным способом?
@user-matiza
@user-matiza 2 роки тому
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
@MrNeptungo
@MrNeptungo Рік тому
Подскажите в чём смысл просмотра данных Excel в Python? Если можно и так всё увидеть в Excel ? В чем смысл привязки?
@bobrovskij100
@bobrovskij100 3 роки тому
Подскажите, пожалуйста, почему когда в excel таблице есть пустые ячейки выдает ошибку? Можно ли это как-то обойти?
@egoroffchannel
@egoroffchannel 3 роки тому
какая ошибка?
@bobrovskij100
@bobrovskij100 3 роки тому
@@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)
@egoroffchannel
@egoroffchannel 3 роки тому
@@bobrovskij100 посмотрите почему он None возвращает
@bobrovskij100
@bobrovskij100 3 роки тому
@@egoroffchannel остаются еще пустые строки
@dimk7983
@dimk7983 3 роки тому
@@bobrovskij100 так что выяснил? Пустые как то обрабатывать отдельно надо или что?
@user-bc4dt5ey2g
@user-bc4dt5ey2g 2 роки тому
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
@r0m1mpl97
@r0m1mpl97 2 роки тому
Вот видео с лучшими способами считывания - ukposts.info/have/v-deo/kYZipK6Rjm6Gx3U.html
@vitaliypodolyak3247
@vitaliypodolyak3247 Рік тому
Почему в этой библиотеке не работает авто дополнение?
@estveritas5877
@estveritas5877 3 роки тому
а вот и читы для егэ подъехали
@speedwalt3788
@speedwalt3788 3 роки тому
Навряд ли нам разрешат устанавливать стороние библиотеки, думаю это будет заблокировано на уровне системы)
@user-vp9gb1mw5e
@user-vp9gb1mw5e 5 місяців тому
как сделать такое же авто дополнение как у тебя? У меня не работает авто дополнение с этой библиотекой ((((((((
@freerade1510
@freerade1510 2 роки тому
Не знаю читаешь ли ты тут еще комменты, но все же спрошу, у меня скачивается excel и при попытке пройтись по строкам выводит только одну и такое предупреждение: UserWarning: Workbook contains no default style, apply openpyxl's default warn("Workbook contains no default style, apply openpyxl's default") Если пересохранить файл, то все нормально, но проблема в том что excel у меня большой (500 тыс. строк) и кроме как в рид онли я его не могу использовать, что может помочь в данном случае?
@egoroffchannel
@egoroffchannel 2 роки тому
А гугл что говорит по этому предупреждению?
@freerade1510
@freerade1510 2 роки тому
@@egoroffchannel Кто-то писал вроде что это формат Apache POI и как бы оно все в одном месте хранится для каких-то целей, по индексу получается выводить только первый столбец, в других тюпл не в рендже.
@usj4871
@usj4871 2 роки тому
у меня тоже такая картина получается
@oblobl1889
@oblobl1889 4 місяці тому
у меня выдает ошибку AttributeError: module 'openpyxl' has no attribute 'open'
@user-ro8qc2lc7u
@user-ro8qc2lc7u Місяць тому
не поставили openpyxl для данного проекта. смотрите видео с начала.)
@user-jj3xv5vw2b
@user-jj3xv5vw2b 3 роки тому
Интересно. А вы английский знаете?
@egoroffchannel
@egoroffchannel 3 роки тому
немного)
@dsfsdfsdfsdf43
@dsfsdfsdfsdf43 2 роки тому
Сообщение = module 'openpyxl' has no attribute 'open' Код 1 в1 как на видео.
@user-sp5uz9rv5n
@user-sp5uz9rv5n Рік тому
пакет установить нужно. CTRL Shift enter
@user-hg1ey8uy9s
@user-hg1ey8uy9s 2 роки тому
Медленно работает с большим количеством строк, 1000 строк для этого способа предел. Кто знает как это лечится?
@amenofus4434
@amenofus4434 2 роки тому
А чо это за программа такая? у меня окно вообще по другому выглядит
@dmitriykonopinskiy3793
@dmitriykonopinskiy3793 11 місяців тому
очень медленно работает такое чтение
Пишу простую, но реальную программу. Python + Excel.
18:48
Клуб дедов-программистов
Переглядів 131 тис.
Піхотинці - про потребу у людях
00:57
Суспільне Новини
Переглядів 1 млн
Уроки Python / Работаем с CSV файлами (считываем и записываем данные)
6:36
Изучаем мир ИТ / Олег Шпагин / Программирование
Переглядів 38 тис.
Основы NumPy Python | Массивы, Матрицы И Операции Над Ними
38:26
PyLounge - программирование на Python и всё о IT
Переглядів 99 тис.
Python Импорт данных №1. Импорт Excel
9:13
Товарищ Excel - Power Query, Power Pivot, Python
Переглядів 16 тис.
Пакеты в Python. Файл __init__, переменная __all__
11:48
Python в .EXE ► КАК?
8:00
Хауди Хо™ - Просто о мире IT!
Переглядів 712 тис.
Визуализация Данных на Python | Pandas и Matplotlib
10:01
Псевдо Программист
Переглядів 55 тис.
Работа с Google Sheets в Python
17:28
TheLookin
Переглядів 18 тис.
Піхотинці - про потребу у людях
00:57
Суспільне Новини
Переглядів 1 млн