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

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2025

ความคิดเห็น • 108

  • @egoroffchannel
    @egoroffchannel  7 หลายเดือนก่อน

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

  • @bulik1384
    @bulik1384 ปีที่แล้ว +18

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

  • @salahruziev732
    @salahruziev732 3 ปีที่แล้ว +29

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

  • @МаксимРуденко-п6д
    @МаксимРуденко-п6д ปีที่แล้ว +1

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

  • @KindSubscriber
    @KindSubscriber 2 ปีที่แล้ว +3

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

  • @ДмитрийКононов-э9х
    @ДмитрийКононов-э9х 2 ปีที่แล้ว +1

    Супер понятно объяснил. Благодарю! )

  • @KobaSmith-zz7es
    @KobaSmith-zz7es ปีที่แล้ว

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

  • @Gerotero-r1o
    @Gerotero-r1o 3 ปีที่แล้ว +1

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

  • @korleone72
    @korleone72 2 ปีที่แล้ว +1

    спасибо, классный урок!

  • @Dayplaylist
    @Dayplaylist 3 ปีที่แล้ว +5

    Код если надо из экселя все засунуть в словарь первый столбец ключ а второй значение
    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)

  • @НиколайМануилов-и1д
    @НиколайМануилов-и1д 3 ปีที่แล้ว +1

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

  • @bessonov5819
    @bessonov5819 3 ปีที่แล้ว

    Спасибо огромное!!! Отличный урок

  • @ДенисЖигалов-ь1х
    @ДенисЖигалов-ь1х 4 ปีที่แล้ว +2

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

  • @deadliwoolfic6390
    @deadliwoolfic6390 2 ปีที่แล้ว

    11:00 можно на место end = не ставить пробел, а потом ещё и print в конце цикла, а поставить

    Вот как это будет выглядить:
    ...
    For cell in row:
    print(cell.value, end = '
    ')

  • @Tribunall
    @Tribunall 3 ปีที่แล้ว

    Спаибо. Доходчивее чем остальные

  • @soundmorozov
    @soundmorozov 4 ปีที่แล้ว

    Лайк однозначно! Отличный урок!

  • @ИльяЗырянов-г6л
    @ИльяЗырянов-г6л 4 ปีที่แล้ว +1

    Спасибо!

  • @limb0kid
    @limb0kid 2 ปีที่แล้ว +1

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

  • @ВалерияМирешко-ь5й
    @ВалерияМирешко-ь5й 3 ปีที่แล้ว

    Большое спасибо!)

  • @DomNaPechi
    @DomNaPechi ปีที่แล้ว +1

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

  • @Дэнчик-ы8ц
    @Дэнчик-ы8ц ปีที่แล้ว +1

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

  • @Dayplaylist
    @Dayplaylist 3 ปีที่แล้ว +2

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

  • @ВалерийЯсный
    @ВалерийЯсный 2 ปีที่แล้ว +2

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

  • @mirlan19
    @mirlan19 3 ปีที่แล้ว

    thank you

  • @vitsol2
    @vitsol2 4 ปีที่แล้ว +1

    Супер

  • @КонстантинБойцов-е1г
    @КонстантинБойцов-е1г 3 ปีที่แล้ว +1

    по видео набрасал для себя
    # Как считывать данные из ексель 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)
    # если хотите дойти до конца файлика

  • @СеменСидоров-щ8с
    @СеменСидоров-щ8с 3 ปีที่แล้ว

    самое полезное видео.

  • @Cahdro
    @Cahdro 4 ปีที่แล้ว

    СПАСИБО

  • @maxbrenson21
    @maxbrenson21 4 ปีที่แล้ว

    Шикарно

  • @МадинаГасановна
    @МадинаГасановна 2 ปีที่แล้ว

    Мир тебе добрый человек. Какую тему вы используете в Pycharm? Очень понравилась структура иконок и файлов в разделе Project

  • @elaeff6585
    @elaeff6585 2 ปีที่แล้ว +1

    Самый главный вопрос, а как данную выгрузку записать в другой файл?

  • @СултанКурманов-ъ3й
    @СултанКурманов-ъ3й 2 ปีที่แล้ว

    просто красава

  • @xi_py
    @xi_py 4 ปีที่แล้ว

    Круто продолжай

  • @illenanimam3728
    @illenanimam3728 4 ปีที่แล้ว +1

    Добрый день! вопрос по видео, минута 11:25 - не поняла, почему значение макс-колумн равно 7? где это задано? по умолчанию или я что-то упустила?

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      Нет, это сама библиотека просчитывает. В файле моей просто несколько последних колонок пустые
      openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_column

    • @АртемКунакбаев-д2ц
      @АртемКунакбаев-д2ц 4 ปีที่แล้ว

      Эти колонки как-то редактировались, например изменили ширину столбцов. А ексель запомнил, что ячейки пустые, но не такие, как все по умолчанию. Поэтому и считает их тоже как активные.

  • @ВячеславОсипов-ч2ь
    @ВячеславОсипов-ч2ь ปีที่แล้ว

    Закрывать файл не обязательно после использования?

  • @3childrenand3kittens21
    @3childrenand3kittens21 4 ปีที่แล้ว

    Красавчик.

  • @Joe_Satriani
    @Joe_Satriani 8 หลายเดือนก่อน

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

  • @МаксЮд
    @МаксЮд 4 ปีที่แล้ว +1

    здарвствуйте, подскажите как взять значение определенной ячейки и записать в word файл шаблон?

  • @gaben_aTan
    @gaben_aTan 3 ปีที่แล้ว

    Здорово. Но очень мало в видео по работе с excel :(

  • @alexhope2629
    @alexhope2629 2 ปีที่แล้ว

    Артём, а возможно ли при помощи этого модуля парсить таблицу онлайн? Например, с гугла или яндекса. Если нет, то каким образом можно это провернуть?

  • @MykhailoKrasulin
    @MykhailoKrasulin 3 ปีที่แล้ว

    можно ли узнать информацию на пересечении двух ячеек?

  • @Скиталец-щ3м
    @Скиталец-щ3м ปีที่แล้ว

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

  • @v1tamin91
    @v1tamin91 9 หลายเดือนก่อน

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

  • @Alex-hh5oe
    @Alex-hh5oe 3 ปีที่แล้ว +1

    Можете рассказать про совместную работу pandas и openpylx ? Как записать DataFrame в excel, чтобы форматы не съезжали, а другие листы файла excel не удалялись. Заранее спасибо!

  • @leonard8336
    @leonard8336 4 ปีที่แล้ว +1

    а с либрой эта библиотека будет работать? ну, точнее, с форматом .ods

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      Пишут, что нет. Но принцип работы такой же

  • @user-matiza
    @user-matiza 3 ปีที่แล้ว

    А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 ปีที่แล้ว

    Благодарю! Отличный урок. Подскажите, какая IDE используется в видео?

  • @python689
    @python689 2 ปีที่แล้ว

    Подскажите, плз, почему при записи данных в 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)

  • @nikoe_dev
    @nikoe_dev 2 ปีที่แล้ว

    День добрый! Подскажите почему цикл сталю до max_row но собирает не все значения, а до предыдущего, приходится ставить max_row+1

  • @SemyonMazepin
    @SemyonMazepin ปีที่แล้ว

    6:24 хз почему но у меня Макс роу выдавал ноне, и посчитать соответственно ничего не мог, искал почему так и нашел на стаковерфлоу код который считает максимум рядов сам и значение это подставлять вместо Макс роу в рендж

  • @housesaroma4060
    @housesaroma4060 4 ปีที่แล้ว +1

    Топ!!!)))

  • @sarvarbekmadgapirov7169
    @sarvarbekmadgapirov7169 2 ปีที่แล้ว

    А как найти информацию в таблице и только её вывести на экран. (Например при запуске программа просит пользователя ввести интересующую информации, потом программа ищет в экселе и выводит значение уже из таблицы)? Заранее спасибо

  • @web-writer4769
    @web-writer4769 2 ปีที่แล้ว

    Чувак, ты лучший, есть ли у тебя урок, как из файла Эксель брать инфу по конкретному значению, например, в столбце адреса городов, в отдельном столбце ему принадлежит числовой индекс. Смысл операции такой: по названию конкретного города в строках находить и выводить индексы, которые соответствуют городу. Реализация через Пайтон.

  • @антонпогребняк-п7э
    @антонпогребняк-п7э 3 ปีที่แล้ว

    подскажите, какой редактор вы используете?

  • @nikitoszdanov8257
    @nikitoszdanov8257 3 ปีที่แล้ว

    А что это у вас за компилятор в котором вы код пишите? Выглядит очень удобным

  • @dimk7983
    @dimk7983 4 ปีที่แล้ว

    Суперлайк! Спасибо полезно
    А можно передавать в Эксель информацию? Больше интересно передать настройки отображения данных листа ексель. Хоть ссылочку может дадите?

  • @whoiam7138
    @whoiam7138 4 ปีที่แล้ว

    Думал Pandas будет :) Это тоже классная библиотека, если не требуются вычисления

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว +1

      сейчас с экселем разберемся и продолжим пандас

  • @who-1880
    @who-1880 4 ปีที่แล้ว

    👍😎👍

  • @wowik1992
    @wowik1992 3 ปีที่แล้ว

    Добрый день, подскажите пожалуйста можно использовать Python для того что бы опубликовать на сайте Excel таблицу с возможностью вносить в неё данные через сайт ? Или для этого лучше подойдёт другой язык программирования?

  • @ДиванныеВойска-о2ю
    @ДиванныеВойска-о2ю 3 ปีที่แล้ว

    Привет. Хорошее видео. У меня вопрос. Pyexcel еще в деле? Или удобнее и лучше через Openpyxl ? Единственный туториал для pyexcel и тот уже не актуальный после выхода новой версии. Уже неделю хочу простую вещь зделать. В таблицу OpenOfficeCalc хочу от ткинтера заносить данные и чтобы они (Имя.Фам.Число. Дни ) были сортированы по календарному отсчету. Может ктонибудь подсказать сайт или какуюто инфу. Я только начал пайтон изучать и вообще не бум бум пока. Маленькие основы есть, раньше MOffice VBA баловался. Но столько лет прошло.

  • @artemalferov4020
    @artemalferov4020 ปีที่แล้ว

    при попытке открыть Excel таблицу таким образом получаю KeyError: "There is no item named 'xl/sharedStrings.xml' in the archive" второй день ищу решение этой ошибки, но никакой нормальной информации, что делать и в чем причина, так и не нашел

  • @MrNeptungo
    @MrNeptungo 2 ปีที่แล้ว

    Подскажите в чём смысл просмотра данных Excel в Python? Если можно и так всё увидеть в Excel ? В чем смысл привязки?

  • @Влад-ъ1к
    @Влад-ъ1к ปีที่แล้ว

    А как импортировать openpyxl в visual studio?

  • @serzhik13xxx
    @serzhik13xxx 3 ปีที่แล้ว +1

    Больше видео про Эксель!)

  • @МаксимПрошкин-л7щ
    @МаксимПрошкин-л7щ 3 ปีที่แล้ว +1

    Google Colab говорит: AttributeError: module 'openpyxl' has no attribute 'open'.

  • @motomotovich8598
    @motomotovich8598 2 ปีที่แล้ว

    А если мне надо поработать только со столбцом, как мне зная только начало и конец столбца вывести инфу. например вынести информацию из [B21:B25]

  • @vitaliypodolyak3247
    @vitaliypodolyak3247 2 ปีที่แล้ว

    Почему в этой библиотеке не работает авто дополнение?

  • @Никитанепыхтин
    @Никитанепыхтин ปีที่แล้ว

    как сделать такое же авто дополнение как у тебя? У меня не работает авто дополнение с этой библиотекой ((((((((

  • @ilyasmustafin2593
    @ilyasmustafin2593 3 ปีที่แล้ว

    Можно пожалуйста название этого вида пайтона

  • @speerit9673
    @speerit9673 ปีที่แล้ว

    спасибо я теперь у меня есть мысль ка как автоматизировать работу которую я делал 20 минут за 2

  • @zzarryadd
    @zzarryadd 3 ปีที่แล้ว

    Как в конце работы закрыть файл, при том, что read_only = True?

  • @bobrovskij100
    @bobrovskij100 4 ปีที่แล้ว +1

    Подскажите, пожалуйста, почему когда в excel таблице есть пустые ячейки выдает ошибку? Можно ли это как-то обойти?

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      какая ошибка?

    • @bobrovskij100
      @bobrovskij100 4 ปีที่แล้ว

      @@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  4 ปีที่แล้ว

      @@bobrovskij100 посмотрите почему он None возвращает

    • @bobrovskij100
      @bobrovskij100 4 ปีที่แล้ว

      @@egoroffchannel остаются еще пустые строки

    • @dimk7983
      @dimk7983 4 ปีที่แล้ว

      @@bobrovskij100 так что выяснил? Пустые как то обрабатывать отдельно надо или что?

  • @777ElfenLied777
    @777ElfenLied777 3 ปีที่แล้ว

    Если отсчёт строк начинается с 1, а колонок с 0, значит ли это, что номера колонок хранятся в списке, а строк иным способом?

    • @user-matiza
      @user-matiza 3 ปีที่แล้ว

      А вот у меня вариант с указанием строк и колонок почему то не работает. Выдает None. Может подскажете в чем дело...

  • @oblobl1889
    @oblobl1889 ปีที่แล้ว

    у меня выдает ошибку AttributeError: module 'openpyxl' has no attribute 'open'

    • @НиколайС-ц8б
      @НиколайС-ц8б 10 หลายเดือนก่อน

      не поставили openpyxl для данного проекта. смотрите видео с начала.)

  • @простоМалышОва
    @простоМалышОва 4 ปีที่แล้ว +1

    Интересно. А вы английский знаете?

  • @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 ปีที่แล้ว

      у меня тоже такая картина получается

  • @estveritas5877
    @estveritas5877 4 ปีที่แล้ว +6

    а вот и читы для егэ подъехали

    • @speedwalt3788
      @speedwalt3788 4 ปีที่แล้ว +2

      Навряд ли нам разрешат устанавливать стороние библиотеки, думаю это будет заблокировано на уровне системы)

  • @АнатолийЮров-ж9л
    @АнатолийЮров-ж9л 3 ปีที่แล้ว +1

    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

  • @amenofus4434
    @amenofus4434 3 ปีที่แล้ว

    А чо это за программа такая? у меня окно вообще по другому выглядит

  • @кошечка-в4я
    @кошечка-в4я 2 ปีที่แล้ว

    Медленно работает с большим количеством строк, 1000 строк для этого способа предел. Кто знает как это лечится?

  • @dsfsdfsdfsdf43
    @dsfsdfsdfsdf43 3 ปีที่แล้ว

    Сообщение = module 'openpyxl' has no attribute 'open'
    Код 1 в1 как на видео.

    • @ГОЛОСНИК-б5б
      @ГОЛОСНИК-б5б 2 ปีที่แล้ว

      пакет установить нужно. CTRL Shift enter

  • @r0m1mpl97
    @r0m1mpl97 3 ปีที่แล้ว

    Вот видео с лучшими способами считывания - th-cam.com/video/YV1pxZW8UfA/w-d-xo.html

  • @dmitriykonopinskiy3793
    @dmitriykonopinskiy3793 ปีที่แล้ว

    очень медленно работает такое чтение