Форум сайта python.su
Добрый день,
Краткая предыстория - в данный момент я работаю, с сфере торговли, в связи с чем очень часто сталкиваюсь
с обработкой данных ( таблиц Excel) с разными параметрами ( остатки, продажи с разбиением по месяцам и названиями товара), ( цены, качество и т д)
Все таблицы однообразны и стандартизированы и каждый раз мне приходится тратить уйму времени чтобы высчитать, какое количество товара исходя из предоставленных данных я должен закупить.
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
Т.е. находила заданным месяцы, выбирала бы значения остатков и реализации продукции, считала средние или максимальные значения, и главное чтобы сохраняла эти значения обратно в этом же файле.
Хотел бы спросить, какой модуль, лучше всего использовать, чтобы можно было как получать данные из файла ексель так а и редактировать этот же файл ?
Я уже конечно прочитал, кучу интернет советов про openPLX, Pandas и прочее, но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.
Офлайн
ToMaTkuHЭта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
ToMaTkuHДелал такую программу. Там надо было брать xls-файл, анализировать его, генерировать новые данные на основе анализа и писать их в новые листы этого же файла.
но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.
Отредактировано py.user.next (Окт. 12, 2019 19:35:51)
Офлайн
А жаль такая “хорошая” была
Офлайн
py.user.next
Эта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.
ToMaTkuHи че теперь лапки к верху … что ж вы такой(я) … неленивые
А жаль такая “хорошая” была
Отредактировано AD0DE412 (Окт. 12, 2019 20:40:05)
Офлайн
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell. Там можно делать из функций длиннющие выражения, включая всякие-разные if-ы. Надо просто один раз разработать такое выражение и раскидать по листам. Порядковый номер месяца или месяц, который интересует и фигурирует в формуле, можно задавать в какой-либо конкретной ячейке и пусть формула(выражение) берёт его оттуда. К примеру месяц можно писать в ячейке, где должен располагаться заголовок колонки с формулой.
Если возможности встроенных функций не хватит, то можно подключить свои функции, написав соответствующий макрос в самом Excell. Мне думается, что вполне должно хватить мощи встроенных функций: максимум, среднее, минимум и прочие стат.расчеты делдаются всего лишь одной, соответствующей, функцией. Если мне не изменяет мой склероз, то там можно задавать диапазон ячеек как источник значений или выражение, дающее набор значений.
Давненько не работал с самим Excell, поэтому более подробную инфу не могу дать.
Офлайн
опеноффис вроде умеет в python, js, basic кроме того если у вас xls просто таблица не отегащенная макросами итд то формат *.csv поддерживается стандартной библиотекой
Офлайн
py.user.nextЭто да. Но с другой стороны дорогу осилит идущий. Сначала почитаете про язык. потом сделаете автоматизацию простейших вещей. Ну и пойдет потихоньку.
Эта “простенькая” программа может оказаться неподъёмной
RafikЗрите в коернь.
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell
ToMaTkuHПериодически встречаюсь с обработкой данных. Как инструмент хранения данных для последующего анализа exel непригоден при сколько-нибудь значительном количестве данных. Общепринятый подход сразу делать импорт из exel в СУБД, а дальше уже наводить аналитику. По мере развития эксел обычно умирает и его место занимает нормальное GUI или веб или 1С. :) Шучу конечно.
но хотелось бы услышать совет тех кто возможно уже делал подобное,
Офлайн
doza_andСпасибо за совет, я не испугался, как говориться дорога в тысячу миль начинается с первого шага.
py.user.next
Эта “простенькая” программа может оказаться неподъёмной
Это да. Но с другой стороны дорогу осилит идущий. Сначала почитаете про язык. потом сделаете автоматизацию простейших вещей. Ну и пойдет потихоньку.
Rafik
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell
Зрите в коернь.
Office и питон это как разные цивилизации. У меня питоновские продукты дохнут в офисной среде из за непонимания пользователей. А офисные продукты дохнут в питонячей среде от бесполезности и беспомощности.
ToMaTkuH
но хотелось бы услышать совет тех кто возможно уже делал подобное,
Периодически встречаюсь с обработкой данных. Как инструмент хранения данных для последующего анализа exel непригоден при сколько-нибудь значительном количестве данных. Общепринятый подход сразу делать импорт из exel в СУБД, а дальше уже наводить аналитику. По мере развития эксел обычно умирает и его место занимает нормальное GUI или веб или 1С. Шучу конечно.
Пугаться не стоит. Для чтения использовать простейший xlrd. Дальше разобраться с sqlite или mongodb или zodb что несложно.
Есть путь начинающего. Если вы уверены что данных немного и они при любом раскладе лезут в память то можно все данные держать в питон объектах полностью читая и записывая их при каждом запуске программы. Тогда вместо баз данных пользуйтесь модулем pickle.
Писать назад в эксел тоже не факт что хорошо, тут больше подходит генерация отчетов. При помощи mako например легко налепить html с метриками.
Как видите моими стараниями для эксела почти не осталось места. Точно также если вы возмете Шарп места не будет питону
Офлайн
> Краткая предыстория - в данный момент я работаю, с сфере торговли….
Если ты работаешь в сфере торговли, то у тебя уже должна быть установлена 1С или вроде того. Вот в ней всё и считай.
Офлайн
ToMaTkuHНе в тысячу миль, а в тысячу ли.
как говориться дорога в тысячу миль начинается с первого шага.
ToMaTkuHИ через Excel можно это всё вычислить обычно. Там есть макросы. Через макросы можно писать функции на Visual Basic и подключать к ячейкам на листе эти функции (я это делал). Без опыта в этом деле тоже ловить нечего. Лучше научиться на питоне всё делать, так как Python лучше Visual Basic сам по себе и ещё работает без наличия Excel'я и на UNIX-подобных системах.
Или все же столь маленькие таблицы можно обработать через ексель
Отредактировано py.user.next (Окт. 14, 2019 19:03:18)
Офлайн