Чтение данных из Excel файла в Python. Библиотека openpyxl в Python
🔥🔥🔥 Инди-курс по 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
В данном группе можете найти информацию о новых видео и задать вопросы
Пікірлер: 108
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
Спасибо за урок. От себя хотел бы добавить, что read_only=True существенно замедляет работу программы. У меня был файл на 1100 строк и работа длилась очень долго, документ парсился около 10-20 минут, не мог понять в чем причина, убрал read_only и все полетело. И вместо функции open лучше использовать load_workbook, это тоже увеличивает скорость работы.
Всё понятно, спасибо. Может сделаешь выпуск про запись/сохранение, работа с диаграммой, настройки штрифтов и т.д? Сложно найти русскоязычных программистов, которые так доходчиво объясняют.
Супер понятно объяснил. Благодарю! )
Автор, спасибо большое за проделанную работу! Было очень полезно. Все доступно и крайне понятно!
Отличные уроки! Работа с XL очень интересная)
Спасибо огромное!!! Отличный урок
Душевно дружище. Я очень рад этому видосу)
Лайк однозначно! Отличный урок!
Добрый день. Спасибо видео было очень полезным.
спасибо, классный урок!
спасибо. задачу свою я не решил, но сделал большой шаг благодаря автору.
Отличное видео, благодарю! Сделай пожалуйста урок про работу с csv файлами🙏
Спаибо. Доходчивее чем остальные
Большое спасибо!)
Спасибо 🖐️☺️ было бы круто если бы вы показали как быстро сделать словарь из данных в Экселе и как изменять данные в Экселе ☺️придется самому пока сделать в качестве домашнего задания😁
Спасибо!
Код если надо из экселя все засунуть в словарь первый столбец ключ а второй значение 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
Жыл бұрын
Спасибо!
Мир тебе добрый человек. Какую тему вы используете в Pycharm? Очень понравилась структура иконок и файлов в разделе Project
Я так понимаю, это подводка к тому что Pandas тоже может парсить Excel? И по моему делает это побыстрее. А так объективно один из лучших каналов про Python. И с дикцией у вас все норм и с донесением материала. Спасибо за труд!
Больше видео про Эксель!)
Может глупый вопрос. Но как запихать data.xlsx в проекты? Я пытался полный адрес файла написать и ничего не получается "Documents/data.xlsx".
Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?
здарвствуйте, подскажите как взять значение определенной ячейки и записать в word файл шаблон?
Шикарно
Спасибо, а как открывать файл с указанием местонахождения через "инпут"? Ну типа через диалоговое окно или ком.строку?
Артём, а возможно ли при помощи этого модуля парсить таблицу онлайн? Например, с гугла или яндекса. Если нет, то каким образом можно это провернуть?
Круто продолжай
Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!
11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить Вот как это будет выглядить: ... For cell in row: print(cell.value, end = ' ')
Супер
СПАСИБО
Топ!!!)))
Конечно интересно, но пока не понял практического применения. Всё, что нужно, можно сделать внутри самого экселя.
У кого проблемы с работой модуля, попробуйте установить более старый интерпретатор питона. У меня стояла 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) # если хотите дойти до конца файлика
Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.
Подскажите, плз, почему при записи данных в 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)
самое полезное видео.
просто красава
можно ли узнать информацию на пересечении двух ячеек?
Объясните пожалуйста на счет range в данном примере. Ведь range же просто генерирует диапазон чисел который мы указываем в () как получается что в этом случае range берет то количество строк из ексель а не просто генерирует числа указанные в ()?
День добрый! Подскажите почему цикл сталю до max_row но собирает не все значения, а до предыдущего, приходится ставить max_row+1
thank you
Суперлайк! Спасибо полезно А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?
Закрывать файл не обязательно после использования?
Классный урок!!! Только у меня вопрос, если по каким то причинам max_row выдает не правильное количество строк с данными, как можно по-другому посчитать строки имеющие какие-то данные? К примеру через какой-нибудь цикл???
А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо
Самый главный вопрос, а как данную выгрузку записать в другой файл?
Красавчик.
@egoroffchannel
3 жыл бұрын
спасибо)
Здорово. Но очень мало в видео по работе с excel :(
Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.
Как в конце работы закрыть файл, при том, что read_only = True?
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
А если мне надо поработать только со столбцом, как мне зная только начало и конец столбца вывести инфу. например вынести информацию из [B21:B25]
Благодарю! Отличный урок. Подскажите, какая IDE используется в видео?
@egoroffchannel
Жыл бұрын
Pycharm
@Dmitrii-Zhinzhilov
Жыл бұрын
@@egoroffchannel, благодарю
Подскажите в чём смысл просмотра данных Excel в Python? Если можно и так всё увидеть в Excel ? В чем смысл привязки?
Добрый день! вопрос по видео, минута 11:25 - не поняла, почему значение макс-колумн равно 7? где это задано? по умолчанию или я что-то упустила?
@egoroffchannel
3 жыл бұрын
Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column
@user-xu1xr1eg7n
3 жыл бұрын
Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.
А как импортировать openpyxl в visual studio?
а с либрой эта библиотека будет работать? ну, точнее, с форматом .ods
@egoroffchannel
3 жыл бұрын
Пишут, что нет. Но принцип работы такой же
при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел
👍😎👍
Можно пожалуйста название этого вида пайтона
А что это у вас за компилятор в котором вы код пишите? Выглядит очень удобным
@user-pc7do4wr7q
11 ай бұрын
PyCharm
спасибо я теперь у меня есть мысль ка как автоматизировать работу которую я делал 20 минут за 2
6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж
Думал Pandas будет :) Это тоже классная библиотека, если не требуются вычисления
@egoroffchannel
3 жыл бұрын
сейчас с экселем разберемся и продолжим пандас
Почему в этой библиотеке не работает авто дополнение?
подскажите, какой редактор вы используете?
@egoroffchannel
3 жыл бұрын
Pycharm
@user-wu2qw5jj2v
3 жыл бұрын
@@egoroffchannel спасибо!
Google Colab говорит: AttributeError: module 'openpyxl' has no attribute 'open'.
Если отсчёт строк начинается с 1, а колонок с 0, значит ли это, что номера колонок хранятся в списке, а строк иным способом?
@user-matiza
2 жыл бұрын
А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...
как сделать такое же авто дополнение как у тебя? У меня не работает авто дополнение с этой библиотекой ((((((((
Подскажите, пожалуйста, почему когда в excel таблице есть пустые ячейки выдает ошибку? Можно ли это как-то обойти?
@egoroffchannel
3 жыл бұрын
какая ошибка?
@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
3 жыл бұрын
@@bobrovskij100 посмотрите почему он None возвращает
@bobrovskij100
3 жыл бұрын
@@egoroffchannel остаются еще пустые строки
@dimk7983
3 жыл бұрын
@@bobrovskij100 так что выяснил? Пустые как то обрабатывать отдельно надо или что?
Не знаю читаешь ли ты тут еще комменты, но все же спрошу, у меня скачивается excel и при попытке пройтись по строкам выводит только одну и такое предупреждение: UserWarning: Workbook contains no default style, apply openpyxl's default warn("Workbook contains no default style, apply openpyxl's default") Если пересохранить файл, то все нормально, но проблема в том что excel у меня большой (500 тыс. строк) и кроме как в рид онли я его не могу использовать, что может помочь в данном случае?
@egoroffchannel
2 жыл бұрын
А гугл что говорит по этому предупреждению?
@freerade1510
2 жыл бұрын
@@egoroffchannel Кто-то писал вроде что это формат Apache POI и как бы оно все в одном месте хранится для каких-то целей, по индексу получается выводить только первый столбец, в других тюпл не в рендже.
@usj4871
2 жыл бұрын
у меня тоже такая картина получается
у меня выдает ошибку AttributeError: module 'openpyxl' has no attribute 'open'
@user-ro8qc2lc7u
2 ай бұрын
не поставили openpyxl для данного проекта. смотрите видео с начала.)
а вот и читы для егэ подъехали
@speedwalt3788
3 жыл бұрын
Навряд ли нам разрешат устанавливать стороние библиотеки, думаю это будет заблокировано на уровне системы)
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
Интересно. А вы английский знаете?
@egoroffchannel
3 жыл бұрын
немного)
Вот видео с лучшими способами считывания - kzread.info/dash/bejne/i4pl0tqTh5u7lqQ.html
Медленно работает с большим количеством строк, 1000 строк для этого способа предел. Кто знает как это лечится?
А чо это за программа такая? у меня окно вообще по другому выглядит
Сообщение = module 'openpyxl' has no attribute 'open' Код 1 в1 как на видео.
@user-sp5uz9rv5n
Жыл бұрын
пакет установить нужно. CTRL Shift enter
очень медленно работает такое чтение