Найти - Пользователи
Полная версия: Обработка данных Excel
Начало » Python для новичков » Обработка данных Excel
1 2 3
ToMaTkuH
Добрый день,
Краткая предыстория - в данный момент я работаю, с сфере торговли, в связи с чем очень часто сталкиваюсь
с обработкой данных ( таблиц Excel) с разными параметрами ( остатки, продажи с разбиением по месяцам и названиями товара), ( цены, качество и т д)
Все таблицы однообразны и стандартизированы и каждый раз мне приходится тратить уйму времени чтобы высчитать, какое количество товара исходя из предоставленных данных я должен закупить.
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
Т.е. находила заданным месяцы, выбирала бы значения остатков и реализации продукции, считала средние или максимальные значения, и главное чтобы сохраняла эти значения обратно в этом же файле.
Хотел бы спросить, какой модуль, лучше всего использовать, чтобы можно было как получать данные из файла ексель так а и редактировать этот же файл ?
Я уже конечно прочитал, кучу интернет советов про openPLX, Pandas и прочее, но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.
py.user.next
ToMaTkuH
В голову пришла гениальная, или не очень, мысль, написать простенькую программку которая бы основные действия делала бы за меня.
Эта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.

ToMaTkuH
но хотелось бы услышать совет тех кто возможно уже делал подобное, или точно знает каким модулем пользоваться лучше всего.
Делал такую программу. Там надо было брать xls-файл, анализировать его, генерировать новые данные на основе анализа и писать их в новые листы этого же файла.
Пример преобразования xls-файла из одного вида в другой.
ToMaTkuH
А жаль такая “хорошая” была
AD0DE412
py.user.next
Эта “простенькая” программа может оказаться неподъёмной для человека без опыта разработки, для человека, который не знает, как конструировать алгоритмы. Так что я бы не обольщался. Компликации при разработке могут возникать в совершенно неожиданных местах и называются “подводными камнями” именно потому, что их вообще не ждёшь.
ToMaTkuH
А жаль такая “хорошая” была
и че теперь лапки к верху … что ж вы такой(я) … неленивые
Rafik
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell. Там можно делать из функций длиннющие выражения, включая всякие-разные if-ы. Надо просто один раз разработать такое выражение и раскидать по листам. Порядковый номер месяца или месяц, который интересует и фигурирует в формуле, можно задавать в какой-либо конкретной ячейке и пусть формула(выражение) берёт его оттуда. К примеру месяц можно писать в ячейке, где должен располагаться заголовок колонки с формулой.
Если возможности встроенных функций не хватит, то можно подключить свои функции, написав соответствующий макрос в самом Excell. Мне думается, что вполне должно хватить мощи встроенных функций: максимум, среднее, минимум и прочие стат.расчеты делдаются всего лишь одной, соответствующей, функцией. Если мне не изменяет мой склероз, то там можно задавать диапазон ячеек как источник значений или выражение, дающее набор значений.
Давненько не работал с самим Excell, поэтому более подробную инфу не могу дать.
AD0DE412
опеноффис вроде умеет в python, js, basic кроме того если у вас xls просто таблица не отегащенная макросами итд то формат *.csv поддерживается стандартной библиотекой
doza_and
py.user.next
Эта “простенькая” программа может оказаться неподъёмной
Это да. Но с другой стороны дорогу осилит идущий. Сначала почитаете про язык. потом сделаете автоматизацию простейших вещей. Ну и пойдет потихоньку.
Rafik
Не проще ли задать всё это хозяйство формулами для расчётов в самом Excell
Зрите в коернь.

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

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

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

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

Как видите моими стараниями для эксела почти не осталось места. Точно также если вы возмете Шарп места не будет питону :)
ToMaTkuH
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), как думаете это большой размер? стоит ли пользоваться базой данных ?
Или все же столь маленькие таблицы можно обработать через ексель без дополнительного допиливания базы данных ?
Rodegast
> Краткая предыстория - в данный момент я работаю, с сфере торговли….

Если ты работаешь в сфере торговли, то у тебя уже должна быть установлена 1С или вроде того. Вот в ней всё и считай.
py.user.next
ToMaTkuH
как говориться дорога в тысячу миль начинается с первого шага.
Не в тысячу миль, а в тысячу ли.
БКРС
里 lǐ
7) ли (кит. мера длины, равная 0,5 км).

ToMaTkuH
Или все же столь маленькие таблицы можно обработать через ексель
И через Excel можно это всё вычислить обычно. Там есть макросы. Через макросы можно писать функции на Visual Basic и подключать к ячейкам на листе эти функции (я это делал). Без опыта в этом деле тоже ловить нечего. Лучше научиться на питоне всё делать, так как Python лучше Visual Basic сам по себе и ещё работает без наличия Excel'я и на UNIX-подобных системах.
Но чтобы программировать на питоне, нужно учить и теорию программирования, и питон. Если знать только одно из этих двух, ничего не будет в итоге. Если будешь изучать только питон - это частая ошибка новичков - ты не сможешь на нём написать правильную программу, так как питон не будет думать за тебя.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB