Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2019 19:07:29

ToMaTkuH
Зарегистрирован: 2019-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка данных Excel

Добрый день,
Краткая предыстория - в данный момент я работаю, с сфере торговли, в связи с чем очень часто сталкиваюсь
с обработкой данных ( таблиц Excel) с разными параметрами ( остатки, продажи с разбиением по месяцам и названиями товара), ( цены, качество и т д)
Все таблицы однообразны и стандартизированы и каждый раз мне приходится тратить уйму времени чтобы высчитать, какое количество товара исходя из предоставленных данных я должен закупить.
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
Т.е. находила заданным месяцы, выбирала бы значения остатков и реализации продукции, считала средние или максимальные значения, и главное чтобы сохраняла эти значения обратно в этом же файле.
Хотел бы спросить, какой модуль, лучше всего использовать, чтобы можно было как получать данные из файла ексель так а и редактировать этот же файл ?
Я уже конечно прочитал, кучу интернет советов про openPLX, Pandas и прочее, но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.

Офлайн

#2 Окт. 12, 2019 19:32:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Обработка данных Excel

ToMaTkuH
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
Эта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.

ToMaTkuH
но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.
Делал такую программу. Там надо было брать xls-файл, анализировать его, генерировать новые данные на основе анализа и писать их в новые листы этого же файла.
Пример преобразования xls-файла из одного вида в другой.



Отредактировано py.user.next (Окт. 12, 2019 19:35:51)

Офлайн

#3 Окт. 12, 2019 19:47:02

ToMaTkuH
Зарегистрирован: 2019-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка данных Excel

А жаль такая “хорошая” была

Офлайн

#4 Окт. 12, 2019 20:25:05

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Обработка данных Excel

py.user.next
Эта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.
ToMaTkuH
А жаль такая “хорошая” была
и че теперь лапки к верху … что ж вы такой(я) … неленивые



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Окт. 12, 2019 20:40:05)

Офлайн

#5 Окт. 12, 2019 20:35:17

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Обработка данных Excel

Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell. Там можно делать из функций длиннющие выражения, включая всякие-разные if-ы. Надо просто один раз разработать такое выражение и раскидать по листам. Порядковый номер месяца или месяц, который интересует и фигурирует в формуле, можно задавать в какой-либо конкретной ячейке и пусть формула(выражение) берёт его оттуда. К примеру месяц можно писать в ячейке, где должен располагаться заголовок колонки с формулой.
Если возможности встроенных функций не хватит, то можно подключить свои функции, написав соответствующий макрос в самом Excell. Мне думается, что вполне должно хватить мощи встроенных функций: максимум, среднее, минимум и прочие стат.расчеты делдаются всего лишь одной, соответствующей, функцией. Если мне не изменяет мой склероз, то там можно задавать диапазон ячеек как источник значений или выражение, дающее набор значений.
Давненько не работал с самим Excell, поэтому более подробную инфу не могу дать.

Офлайн

#6 Окт. 12, 2019 20:48:07

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Обработка данных Excel

опеноффис вроде умеет в python, js, basic кроме того если у вас xls просто таблица не отегащенная макросами итд то формат *.csv поддерживается стандартной библиотекой



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#7 Окт. 12, 2019 23:02:56

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Обработка данных Excel

py.user.next
Эта “простенькая” программа может оказаться неподъёмной
Это да. Но с другой стороны дорогу осилит идущий. Сначала почитаете про язык. потом сделаете автоматизацию простейших вещей. Ну и пойдет потихоньку.
Rafik
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell
Зрите в коернь.

:)
Office и питон это как разные цивилизации. У меня питоновские продукты дохнут в офисной среде из за непонимания пользователей. А офисные продукты дохнут в питонячей среде от бесполезности и беспомощности.
ToMaTkuH
но хотелось бы услышать совет тех кто возможно уже делал подобное,
Периодически встречаюсь с обработкой данных. Как инструмент хранения данных для последующего анализа exel непригоден при сколько-нибудь значительном количестве данных. Общепринятый подход сразу делать импорт из exel в СУБД, а дальше уже наводить аналитику. По мере развития эксел обычно умирает и его место занимает нормальное GUI или веб или 1С. :) Шучу конечно.

Пугаться не стоит. Для чтения использовать простейший xlrd. Дальше разобраться с sqlite или mongodb или zodb что несложно.

Есть путь начинающего. Если вы уверены что данных немного и они при любом раскладе лезут в память то можно все данные держать в питон объектах полностью читая и записывая их при каждом запуске программы. Тогда вместо баз данных пользуйтесь модулем pickle.

Писать назад в эксел тоже не факт что хорошо, тут больше подходит генерация отчетов. При помощи mako например легко налепить html с метриками.

Как видите моими стараниями для эксела почти не осталось места. Точно также если вы возмете Шарп места не будет питону :)



Офлайн

#8 Окт. 14, 2019 15:48:05

ToMaTkuH
Зарегистрирован: 2019-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка данных Excel

doza_and
py.user.next
Эта “простенькая” программа может оказаться неподъёмной
Это да. Но с другой стороны дорогу осилит идущий. Сначала почитаете про язык. потом сделаете автоматизацию простейших вещей. Ну и пойдет потихоньку.
Rafik
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell
Зрите в коернь.


Office и питон это как разные цивилизации. У меня питоновские продукты дохнут в офисной среде из за непонимания пользователей. А офисные продукты дохнут в питонячей среде от бесполезности и беспомощности.
ToMaTkuH
но хотелось бы услышать совет тех кто возможно уже делал подобное,
Периодически встречаюсь с обработкой данных. Как инструмент хранения данных для последующего анализа exel непригоден при сколько-нибудь значительном количестве данных. Общепринятый подход сразу делать импорт из exel в СУБД, а дальше уже наводить аналитику. По мере развития эксел обычно умирает и его место занимает нормальное GUI или веб или 1С. Шучу конечно.

Пугаться не стоит. Для чтения использовать простейший xlrd. Дальше разобраться с sqlite или mongodb или zodb что несложно.

Есть путь начинающего. Если вы уверены что данных немного и они при любом раскладе лезут в память то можно все данные держать в питон объектах полностью читая и записывая их при каждом запуске программы. Тогда вместо баз данных пользуйтесь модулем pickle.

Писать назад в эксел тоже не факт что хорошо, тут больше подходит генерация отчетов. При помощи mako например легко налепить html с метриками.

Как видите моими стараниями для эксела почти не осталось места. Точно также если вы возмете Шарп места не будет питону
Спасибо за совет, я не испугался, как говориться дорога в тысячу миль начинается с первого шага.
Тем более, я это делаю по вечерам и чисто для себя, мне интересно программирование. Да и облегчить себе работу было бы не лишним. Не выйдет не беда.
Файлы Екселя весят не более 50кб, там таблицы максимум 40*100 ячеек с цифрами (в основном 5*40), как думаете это большой размер? стоит ли пользоваться базой данных ?
Или все же столь маленькие таблицы можно обработать через ексель без дополнительного допиливания базы данных ?

Офлайн

#9 Окт. 14, 2019 16:07:46

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Обработка данных Excel

> Краткая предыстория - в данный момент я работаю, с сфере торговли….

Если ты работаешь в сфере торговли, то у тебя уже должна быть установлена 1С или вроде того. Вот в ней всё и считай.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Окт. 14, 2019 19:00:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Обработка данных Excel

ToMaTkuH
как говориться дорога в тысячу миль начинается с первого шага.
Не в тысячу миль, а в тысячу ли.
БКРС
里 lǐ
7) ли (кит. мера длины, равная 0,5 км).

ToMaTkuH
Или все же столь маленькие таблицы можно обработать через ексель
И через Excel можно это всё вычислить обычно. Там есть макросы. Через макросы можно писать функции на Visual Basic и подключать к ячейкам на листе эти функции (я это делал). Без опыта в этом деле тоже ловить нечего. Лучше научиться на питоне всё делать, так как Python лучше Visual Basic сам по себе и ещё работает без наличия Excel'я и на UNIX-подобных системах.
Но чтобы программировать на питоне, нужно учить и теорию программирования, и питон. Если знать только одно из этих двух, ничего не будет в итоге. Если будешь изучать только питон - это частая ошибка новичков - ты не сможешь на нём написать правильную программу, так как питон не будет думать за тебя.



Отредактировано py.user.next (Окт. 14, 2019 19:03:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version