Вниз  Python
- 6.09.2012 / 22:04
Jafadan
  Пользователь

Jafadan 
Сейчас: Offline
gtasase, модуль e32 задействуй.
- 6.09.2012 / 22:05
gtasase
  Пользователь

gtasase 
Сейчас: Offline
Jafadan, а подробней
- 6.09.2012 / 22:11
f1aky
  Пользователь

f1aky 
Сейчас: Offline

Изменено f1aky (6.09 / 22:13) (всего 2 раза)
- 6.09.2012 / 22:20
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
gtasase, используй циклы и ооп.
- 11.09.2012 / 07:27
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Про то, как я Excel с питоном подружил
Автор: Степа Ильин

Бредовая идея.
Есть миллионы людей, которые бесхитростно работают в Excel с самыми обычными электронными таблицами. Есть очень редкие гики, которые используют максимум возможностей встроенного VBA-языка, чтобы, к примеру, обойти ограничение на запуск менеджера задач, реализовав свой собственный. Я отношусь к первому типу :). Я сильно не люблю составлять отчеты. Придумать более унылое занятие невозможно: взять данные оттуда, вставить в таблицу, взять данные из другого места и опять вставить в таблицу. После третьего такого отчета я решил это дело автоматизировать. Задача казалась вполне земной, если бы не одно - иметь дело со встроенным VBA совершенно не хотелось. К тому же нужно было обрабатывать сложные форматы файлов, а писать с нуля парсер нисколько не привлекало. С документом надо было работать постоянно, поэтому вариант написать внешний скрипт на Python, который на основе xls-шаблона создавал бы отчет, вставляя нужные данные, не годился (хотя изначально хотел сделать именно так). "Вот если бы в Excel был встроен Python для скриптинга, то все было бы в десять раз проще", - подумал я и набрал в Google: "excel with python". Оказалось, что подобной ерундой был озадачен не только я :).

Excel + Python
Один из первых найденных проектов - PyXLL (www.pyxxl.com) позволял быстро писать на питоне функции, которые далее можно было использовать наравне со стандартными функциями Excel'я (вроде СУММА()). Я даже попробовал его в действии. Выглядит это так: ты пишешь Python-скрипт в соответствии с некоторыми правилами, реализуя необходимые действия с получаемыми данными, после чего через специальный аддон для Excel'я импортируешь написанные функции. Не так плохо, но хотелось прямо в коде Python обращаться к нужным ячейкам электронной таблицы. И это позволял другой найденный аддон DataNitro (datanitro.com). После его установки в Excel'e появляется новая вкладка, откуда вызывается редактор. Интеграция выполнена очень удобно, поэтому можно, не сильно заморачиваясь, написать что-то вроде:

  1. Cell("A1").Value = "Hello, World!"

Далее запускаем сценарий с помощью кнопки на панели тулбара и получаем нужное значение в ячейке A1! Недолго думая, я стал наращивать функционал, который был мне нужен. Пробую импортировать библиотеки для работы с нужными форматами и прочитать данные - все работает. Запрашиваю через API информацию из нескольких онлайн-сервисов - все отлично агрегируется. Пишу простенькую приблуду для рассылки отчетов - все отлично отправляется. В итоге за тридцать минут удается сделать скрипт, который будет экономить два часа - те, что превращались для меня в пытку :). Сперва я даже начал выполнять в Python все расчёты, лишь позже вспомнив, что с этим справится сам Excel. Впрочем, если нужно посчитать что-то серьезное, то ничего не стоит подгрузить математический модуль NumPy и делать любые научные вычисления.

:strela: Вкладка аддона, с помощью которой реализуется интеграция DataNitro и Excel

Выжать максимум
Скриптинг на Python - всегда гарантия хорошей расширяемости приложения. Взять хотя бы редактор Sublime Text: плагины для него уже есть на любой случай жизни. Впрочем, можно не ходить далеко за примером. Один из создателей DataNitro в качестве иллюстрации возможностей своей разработки написал на Excel'e Twitter-клиент (подробнее можно прочитать здесь: bit.ly/Res2mZ). Причем минимальными усилиями благодаря питоновской обертке для Twitter API - tweepy (github.com/tweepy/tweepy). Конечно, это всего лишь Proof-of-Concept, но зато хорошая иллюстрация того, что интеграция с Python с его огромным количеством готовых модулей на любой случай жизни может быть очень полезной. Кстати, сделать такую фишку не так уж и сложно, о чем пишется в официальной документации Python. А освоить основы языка можно за полчаса. К слову, интерактивная школа по программированию Codeacademy как раз выпустила неплохой курс (http://codecademy.com/tracks/python).

Изменено XakepPRO (11.09 / 07:28) (всего 2 раза)


Прикрепленные файлы:
Screen-shot-201(…).png (134.34 кб.) Скачано 491 раз
- 11.09.2012 / 08:04
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
XakepPRO, это ты Степа Ильин?
- 11.09.2012 / 08:35
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
в пыхе тоже можно сделать, без апи правда, работать с ячейками как с массивом
http://annimon.com/code/?act=view&id=322
__________________
 Магистр Мёда

Изменено Koenig (11.09 / 08:38) (всего 1 раз)
- 11.09.2012 / 14:11
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Bogdan-G, нет, из журнала взял статью. Хорошая :)
- 21.09.2012 / 17:27
sos
  Пользователь

sos 
Сейчас: Offline
Скажите пожалуйста.А есть ли программа для программирования на питон со смартфона?
- 21.09.2012 / 18:05
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
sos, Py60.
Наверх  Всего сообщений: 1016
Фильтровать сообщения
Поиск по теме
Файлы топика (28)