No video

Парсим файл Excel с помощью Python

  Рет қаралды 24,652

IT Generation

IT Generation

2 жыл бұрын

Учимся парсить электронные таблицы Excel на Python c библиотекой openpyxl
Страница библиотеки (скачать и мануалы) openpyxl.readt...
Наш сайт - it-generation.ru/
Наш канал Дзен - zen.yandex.ru/id/60f954b9b373901812360a65
Мы в Telegram - t.me/it_genera...
Мы в ВК - itgener...
Мини-проекты на Python:
Игра "Крестики-нолики"
Часть 1 - • Мини-проекты на Pytho...
Часть 2- • Мини-проекты на Pytho...
Часть 3 - • Мини-проекты на Pytho...
Проект "Консольный чат-бот" :
Часть 1 - • Мини-проекты на Pytho...
Часть 2 - • Мини-проекты на Pytho...
Игра "Камень-ножницы-бумага" - • Мини-проекты на Pytho...
Проект "Телеграм-бот":
Часть 1 - • Мини-проекты на Pytho...
Часть 2 - • Мини-проекты на Pytho...
Калькулятор на Tkinter - • Мини-проекты на Pytho...

Пікірлер: 68
@tvorcuha
@tvorcuha 2 жыл бұрын
Благодарю, очень вовремя нашел, просто и понятно. Успехов 🙏🏼
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Спасибо огромное за комментарий! Самое "зашедшее" моё видео, но почему-то комментариев нет))
@pixel2749
@pixel2749 Жыл бұрын
Здравствуйте! Начал изучать Pythone и для наглядности решил попрактиковать взаимодействия с Excel, ваше Видео как нельзя кстати! Можете записать ещё видео с практическими примерами? как вариант, вытаскивание данных из ячеек Excel, сортировка их по условию по условию, далее переносим полученные результаты в соседние ячейки Excel.
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Спасибо за комментарий и подсказки! Обязательно сделаю!
@Evgeniytr
@Evgeniytr Жыл бұрын
@@ITGeneration2020 Интересный урок, хотелось бы продолжение увидеть, анализ полученных из эксель данных и их сохранение в эксель.
@yporotxx
@yporotxx 6 ай бұрын
Спасибо. всё четко понятно и по делу!
@cyber-jackal
@cyber-jackal Жыл бұрын
Спасибо! Очень качественный ролик! Я впервые на канале, сначала подумал, что у автора многотысячная аудитория, продолжай в том же духе!
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Спасибо за комментарий и за теплые слова! Стараюсь для вас!
@nikoe_dev
@nikoe_dev Жыл бұрын
Классно видео! Все по делу и простыми словами! Спасибо!
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Спасибо за комментарий, стараемся для вас!
@myata04
@myata04 Жыл бұрын
Как раз хотел изучить библеотеку openpyxl, спасибо, выручили
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Спасибо за комментарий!
@Serkwq
@Serkwq 2 жыл бұрын
Лучший канал!! Спасибо автору за познавательные видео!
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Спасибо, Наташа!
@f4ruke179
@f4ruke179 2 жыл бұрын
Недавно изучал данную библиотеку и совместил ее с PyQT5. То что я сейчас напишу будет полезно знать всем. Если обращаться к ячейке не по такому стилю: sheet[ "A1" ], а по такому sheet[ 1 ][ 0 ], то в случает если в ячейке не будет значения, то прога крашится, так как python думает, что мы вышли за пределы массива, но есть одна хитрость, можно сделать так: sheet[sheet[ 1 ][ 0 ].coordinate], sheet[ 1 ][ 0 ].coordinate возвращает нам координаты ячейки в стиле excel, , и в таком случае даже если в ячейки нет элемента, то исключения не возникнет, нам просто вернеться None. Вы можете спросить, а зачем нам такой стиль, я отвечу, чтобы разложить данные из таблицы с помощью вложенного цикла, количество строк и столбцов можно узнать с помощью методов max_row и max_column. Пример: for i in range(1, sheet.max_row + 1) # Начинаем c 1 строки, так как если начнем с 0 вылетит ошибка for j in range(0, sheet.max_column) # Проходимся по кол-ву столбцов print(sheet[sheet[ i ][ j ].coordinate], end=" ") # Выводим в консоль каждый элемент в каждой строке print() # Перенос на новую строку
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Да, в планах было как раз подружить парсинг xlsx с оконным интерфейсом, но пока планы сдвигаются. За подсказку sheet[0][1].сoordinate спасибо, парсим с учениками очень громоздкий файл, вечно чего-то не хватает.
@f4ruke179
@f4ruke179 2 жыл бұрын
@@ITGeneration2020 Да я сам еще ученик, подумал, что те кто изучают данную библиотеку могут не знать об этом, надеюсь кому то пригодится, всем мирного неба над головой
@K-I-R-T
@K-I-R-T Жыл бұрын
Все круто, но снимай пожалуйста в 1080p
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
да, понял свою ошибку
@ringogringo999
@ringogringo999 2 жыл бұрын
лукас и подписка. изменение и запись нада.
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
спасибо за комментарий!
@vasbkamarxil1260
@vasbkamarxil1260 Жыл бұрын
очень интересно спасибо
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
спасибо вам за просмотр и комментарий
@Kipishio
@Kipishio Жыл бұрын
Красавчик! Благодарю!
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Спасибо!
@vasbkamarxil1260
@vasbkamarxil1260 Жыл бұрын
допустим числа необходимо сравнить, у меня почему то ошибка(как исправить подскажите . . . в d1 D числа типа float for i in range(2, 6418): d1 = sheet['C'+str(i)].value D = sheet['D'+str(i)].value if d1 > D: print(sheet['A'+str(i)].value) TypeError: '>' not supported between instances of 'NoneType' and 'float'
@vasbkamarxil1260
@vasbkamarxil1260 Жыл бұрын
я разобрался спасибо все получилось)
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
@@vasbkamarxil1260 Рады, что помогли вам даже молча)
@vasbkamarxil1260
@vasbkamarxil1260 Жыл бұрын
@@ITGeneration2020 с ключами бы ещё пример увидеть)
@EugenioHorvat
@EugenioHorvat 2 жыл бұрын
Подписан однозначно !
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Однозначно спасибо!!! Планировал сегодня снять продолжение про запись в таблицу, даже уже было подготовился, написал пару скриптов по работе, но так и не дошли руки. Лайк если интересно!)))
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Скрипты можно найти у меня в гитхабе, а гитхаб можно найти в одном из видео)
@kairatalmenov9558
@kairatalmenov9558 Жыл бұрын
ДД. у меня вопрос: если например стоит задача обработать/проанализировать некий массив данных excel. пытаюсь сделать это через макрос VBA, но скорость как-то не устраивает. Вопрос: если тот же алгоритм реализовать через Питон, то будет ли ускорение работы по сравнению с VBA?
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Думаю, что нет, питон сам по себе довольно медленный язык. Так что если и будет выигрыш во времени, то несущественный.
@DomNaPechi
@DomNaPechi Жыл бұрын
Интересно посмотреть по фильтрации данных, выводу и суммированию отдельных ячеек, удаление дубликатов, форматирование ячеек на выходе в файле, т.е. в таком ключе. Пока пробовал в пандас и формат csv, почему-то именно так посоветовали. Но наверное можно и без пандас?
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Вообще пандас - лучший выбор, там много готовых функций, которые пришлось бы писать самим. Может, объединить усилия пандас и openpyxls, он больше для работы с файлами предназначен.
@DomNaPechi
@DomNaPechi Жыл бұрын
@@ITGeneration2020 с пандас я уже сделал, но в "дедах программистах" Написали, типа такое циклами проще... Вот и подумалось, реально ли? Я только изучаю питон, и многого не знаю🤷🏼‍♂️
@vasbkamarxil1260
@vasbkamarxil1260 Жыл бұрын
здравствуйте работаю с excel, попытался написать прогу с поиском аналога через вложенный цикл, но что то идет не так и в 2 цикли все значения None. Не пойму что не так . . . from openpyxl import load_workbook fn = 'с.xlsx' book = load_workbook(fn, data_only=True) sheet = (book['Лист1']) maxrows = sheet.max_row for i in range(2, maxrows+1): if not sheet['A'+str(i)].value: #если пустое пропустить continue ID_PST = sheet['A'+str(i)].value stati = sheet['B'+str(i)].value d1 = sheet['C'+str(i)].value D = sheet['D'+str(i)].value H = sheet['E'+str(i)].value tip = sheet['F'+str(i)].value teflon = False if 'V' in str(tip): teflon = True # print(ID_PST,stati, d1, D, H, tip, teflon ) for j in range(2, maxrows+1): if sheet['A'+str(i)].value == sheet['A'+str(j)].value: continue ID_PST_2 = sheet['A'+str(j)].value stati_2 = sheet['B'+str(j)].value d1_2 = sheet['C'+str(j)].value D_2 = sheet['D'+str(j)].value H_2 = sheet['E'+str(j)].value tip_2 = sheet['F'+str(j)].value teflon_2 = False if 'V' in str(tip_2): teflon_2 = True print(ID_PST_2, stati_2, d1_2, D_2, H_2, tip_2) # if (d1-0.2)
@abbabold7466
@abbabold7466 Жыл бұрын
привет, подскажи плиз: for i in range(2, maxrows+1) тут maxrows+1 это последний элемент? почему не maxrows-1 ?)
@GlExcel
@GlExcel 2 жыл бұрын
а как сделать следующее: указать путь к файлам Excel и чтобы на выходе получили список вида: название файла, название листа внутри файла и так по всем файлам и листам.. ??
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Спасибо за комментарий! Сделаю на эту тему ролик в ближайшее время. Вы имеете в виду оконное приложение, когда пользователь указывает папку?
@GlExcel
@GlExcel 2 жыл бұрын
@@ITGeneration2020 можно и так, но можно просто в коде путь прописать, но лучше, чтобы указывал
@skyper1400
@skyper1400 Жыл бұрын
Благодарю за интересный материал. Есть только вопрос, можно ли сделать так, чтобы пользователь водил артикул(который условно находится в ячейке A2), а ему выводилась информация из ячейки B2 C2 D2)?
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
То есть, чтобы после записи в определенную ячейку было чтение связанных с ней ячеек?
@CRESHT
@CRESHT Жыл бұрын
1) Создаешь список из колонки А; 2) затем ищешь артикул в списке 3) запоминаешь индекс 4) по индексу выводишь значение из соседних ячеек name_user = input() if name_user in spisok_1: print(sheet["N" + str(spisok_1.index(name_user))].value)
@skyper1400
@skyper1400 Жыл бұрын
@@ITGeneration2020да
@skyper1400
@skyper1400 Жыл бұрын
@@CRESHT спасибо
@it-kz3mo
@it-kz3mo 2 жыл бұрын
Народ по старинке делает расчеты вручную.Автоматизацией занимаются сейчас не все,а по старинке делают расчеты вручную,за несколько минут или часов.Зависит от данных и много других факторов. Когда таким людям предлагаешь автоматизировать расчеты-отказываются.Их право конечно,но это мягко говоря странно.И вообще-очень глупо отказываться от того,что тебя улучшает,хотя-каждому свое..... Даже во многих бытовых вопросах пытаюсь автоматизировать то,что мне нужно.Это я говорю для тех,кто считает мол,я не программист,зачем я буду заниматься кодом и темболее автоматизировать что то.Даже для решения бытовых вопросов многих пригодятся такие коды.Тот же расчет семейного бюджета например (первое,что пришло в голову).
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Спасибо за комментарий. Так и есть. Такие люди и Экселем пользоваться не будут. Но это не хорошо и не плохо. Это данность.
@it-kz3mo
@it-kz3mo 2 жыл бұрын
@@ITGeneration2020 И еще я лично знаю людей,которые даже компа никонда не видели,даже почту отправлять не умеют,про то,чтобы уметь что то искать в интернете или вообше программировать-как говорится вообще молчу.....это при том,что мы живем во время очень быстрого развития сферы it.И такие люди часто учат жизни еще,хотя сами базы в айти не знают,в наше время это как ложку держать.....
@greatbritain1406
@greatbritain1406 Жыл бұрын
Здравствуйте. Как присвоить переменной значение из таблицы, ориентируясь на значения левого столбца и верхней строки?
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
вы имеете в виду создать переменную с именем a1? или любую другую со значением, взятым из ячейки A1? Если последнее, то лист рассматривается как словарь, sheet['A1'] - мы обращаемся по адресу ячейки к содержимому. Нужно погрузиться в словари, они очень важны в питоне (да и в других языках). Весь питон по сути - один большой словарь.
@greatbritain1406
@greatbritain1406 Жыл бұрын
Взять значения по двум параметрам, например, взять из таблицы показатель адиабаты при определенном давлении (столбец слева) и определенной температуре( строка сверху), которые задаются вручную.
@greatbritain1406
@greatbritain1406 Жыл бұрын
@@ITGeneration2020 знаете как это сделать?
@CRESHT
@CRESHT Жыл бұрын
@@greatbritain1406 как понял находишь значение в левом столбике, от его индекса прыгаешь в нужную ячейку и берешь от туда значение
@HaHaHa55566
@HaHaHa55566 Жыл бұрын
А сможешь написать парсер для телеграмма? Что бы он парсил названия чатов либо ссылки на чаты по заданным тематикам? Подскажи как, а лучше покажи)) с меня лайк и подписка)
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Так-то можно, но есть вопрос - откуда он будет брать ссылки на чаты?
@HaHaHa55566
@HaHaHa55566 Жыл бұрын
@@ITGeneration2020 к сожалению не знаю)
@zadovrus6719
@zadovrus6719 Жыл бұрын
Где это на практике может пригодиться? Почему нельзя просто открыть файл Exel и посмотреть на эти данные, а не выводить в программе наугад или постоянно заглядывая в тот же Exel файл. Кто-нибудь объясните!!!
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Отличный вопрос! Программы пишут, чтобы автоматизировать какую-нибудь деятельность. Конечно же, ради одной ячейки никто писать не будет, поэтому заголовок видео - "Парсим файл". Это чтение ячейки можно положить в цикл и прочитать весь лист целиком, чтобы потом программно работать с этими данными.
@CRESHT
@CRESHT Жыл бұрын
Мне на работе очень помогает. Я например очищаю фалы от мусора. Удаляю двойные пробелы, различные символы или произвожу замени одних символов на другие. Сами понимаете исправлять 150 тыс. записей руками - ну нет, спасибо!
@pranks4167
@pranks4167 Жыл бұрын
А как считать данные с ссылки на excel таблицу ?
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
Не очень понял вопрос, с какой ссылки данные нужно читать?
@nomatik6096
@nomatik6096 Жыл бұрын
хотел узнать можно ли убирать пробелы, если можно то как? в самом excel файле есть пробелы, их надо убрать именно через пайтон ищу уже второй день ответ
@ITGeneration2020
@ITGeneration2020 Жыл бұрын
В прочитанном split() - разделит на отдельные слова, replace(' ',''), для замены пробела на пустой символ
@CRESHT
@CRESHT Жыл бұрын
Методом str.replace(" ", "")
@Bozon_Higgsa
@Bozon_Higgsa 2 жыл бұрын
...
@ITGeneration2020
@ITGeneration2020 2 жыл бұрын
Спасибо за комментарий!
Пишу реальную программу. Парсинг текстового файла. Python + Pandas + Excel.
23:57
Идеально повторил? Хотите вторую часть?
00:13
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 16 МЛН
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 210 МЛН
Look at two different videos 😁 @karina-kola
00:11
Andrey Grechka
Рет қаралды 9 МЛН
Automate Excel With Python - Python Excel Tutorial (OpenPyXL)
38:02
Tech With Tim
Рет қаралды 1,6 МЛН
Pandas для пользователей Excel
56:23
ITvladranepa
Рет қаралды 7 М.
Пишу простую, но реальную программу. Python + Excel.
18:48
Клуб дедов-программистов
Рет қаралды 137 М.
Python Excel - Reading Excel files with Pandas read_excel
19:33
Very Academy
Рет қаралды 73 М.
Python + OpenPyXl = Excel
30:40
Azzrael Code
Рет қаралды 35 М.
Идеально повторил? Хотите вторую часть?
00:13
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 16 МЛН