🫵 Теория без практики - ничто, поэтому 👇 🐍 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)
Я так понимаю, это подводка к тому что 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) # если хотите дойти до конца файлика
Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column
Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.
Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?
Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???
Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!
6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж
А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо
Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.
Суперлайк! Спасибо полезно А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?
Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?
Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.
при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел
@@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)
Не знаю читаешь ли ты тут еще комменты, но все же спрошу, у меня скачивается 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 и как бы оно все в одном месте хранится для каких-то целей, по индексу получается выводить только первый столбец, в других тюпл не в рендже.
🫵 Теория без практики - ничто, поэтому 👇
🐍 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)
Спасибо!
Отличные уроки! Работа с XL очень интересная)
Спасибо огромное!!! Отличный урок
Я так понимаю, это подводка к тому что Pandas тоже может парсить Excel? И по моему делает это побыстрее. А так объективно один из лучших каналов про Python. И с дикцией у вас все норм и с донесением материала. Спасибо за труд!
11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить
Вот как это будет выглядить:
...
For cell in row:
print(cell.value, end = '
')
Спаибо. Доходчивее чем остальные
Лайк однозначно! Отличный урок!
Спасибо!
Отличное видео, благодарю! Сделай пожалуйста урок про работу с csv файлами🙏
Большое спасибо!)
Спасибо, а как открывать файл с указанием местонахождения через "инпут"? Ну типа через диалоговое окно или ком.строку?
У кого проблемы с работой модуля, попробуйте установить более старый интерпретатор питона. У меня стояла 3.10.10, я скачал 3.10.8 и всё заработало. Видимо библиотека ещё не адаптирована под новый интерпретатор
Спасибо 🖐️☺️ было бы круто если бы вы показали как быстро сделать словарь из данных в Экселе и как изменять данные в Экселе ☺️придется самому пока сделать в качестве домашнего задания😁
Может глупый вопрос. Но как запихать data.xlsx в проекты? Я пытался полный адрес файла написать и ничего не получается "Documents/data.xlsx".
thank you
Супер
по видео набрасал для себя
# Как считывать данные из ексель 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)
# если хотите дойти до конца файлика
самое полезное видео.
СПАСИБО
Шикарно
Мир тебе добрый человек. Какую тему вы используете в Pycharm? Очень понравилась структура иконок и файлов в разделе Project
Самый главный вопрос, а как данную выгрузку записать в другой файл?
просто красава
Круто продолжай
Добрый день! вопрос по видео, минута 11:25 - не поняла, почему значение макс-колумн равно 7? где это задано? по умолчанию или я что-то упустила?
Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые
openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column
Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.
Закрывать файл не обязательно после использования?
Красавчик.
спасибо)
Конечно интересно, но пока не понял практического применения. Всё, что нужно, можно сделать внутри самого экселя.
здарвствуйте, подскажите как взять значение определенной ячейки и записать в word файл шаблон?
Здорово. Но очень мало в видео по работе с excel :(
Артём, а возможно ли при помощи этого модуля парсить таблицу онлайн? Например, с гугла или яндекса. Если нет, то каким образом можно это провернуть?
можно ли узнать информацию на пересечении двух ячеек?
Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?
Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???
Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!
а с либрой эта библиотека будет работать? ну, точнее, с форматом .ods
Пишут, что нет. Но принцип работы такой же
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
Благодарю! Отличный урок. Подскажите, какая IDE используется в видео?
Pycharm
@@egoroffchannel, благодарю
Подскажите, плз, почему при записи данных в 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)
День добрый! Подскажите почему цикл сталю до max_row но собирает не все значения, а до предыдущего, приходится ставить max_row+1
6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж
Топ!!!)))
А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо
Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.
подскажите, какой редактор вы используете?
Pycharm
@@egoroffchannel спасибо!
А что это у вас за компилятор в котором вы код пишите? Выглядит очень удобным
PyCharm
Суперлайк! Спасибо полезно
А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?
Думал Pandas будет :) Это тоже классная библиотека, если не требуются вычисления
сейчас с экселем разберемся и продолжим пандас
👍😎👍
Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?
Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.
при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел
Подскажите в чём смысл просмотра данных Excel в Python? Если можно и так всё увидеть в Excel ? В чем смысл привязки?
А как импортировать openpyxl в visual studio?
Больше видео про Эксель!)
Google Colab говорит: AttributeError: module 'openpyxl' has no attribute 'open'.
А если мне надо поработать только со столбцом, как мне зная только начало и конец столбца вывести инфу. например вынести информацию из [B21:B25]
Почему в этой библиотеке не работает авто дополнение?
как сделать такое же авто дополнение как у тебя? У меня не работает авто дополнение с этой библиотекой ((((((((
Можно пожалуйста название этого вида пайтона
спасибо я теперь у меня есть мысль ка как автоматизировать работу которую я делал 20 минут за 2
Как в конце работы закрыть файл, при том, что read_only = True?
Подскажите, пожалуйста, почему когда в 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 так что выяснил? Пустые как то обрабатывать отдельно надо или что?
Если отсчёт строк начинается с 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 и как бы оно все в одном месте хранится для каких-то целей, по индексу получается выводить только первый столбец, в других тюпл не в рендже.
у меня тоже такая картина получается
а вот и читы для егэ подъехали
Навряд ли нам разрешат устанавливать стороние библиотеки, думаю это будет заблокировано на уровне системы)
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
А чо это за программа такая? у меня окно вообще по другому выглядит
Медленно работает с большим количеством строк, 1000 строк для этого способа предел. Кто знает как это лечится?
Сообщение = module 'openpyxl' has no attribute 'open'
Код 1 в1 как на видео.
пакет установить нужно. CTRL Shift enter
Вот видео с лучшими способами считывания - th-cam.com/video/YV1pxZW8UfA/w-d-xo.html
очень медленно работает такое чтение