Хочу поделится наработками, которые получились в процессе реализации своих задач.
Может описываемое тут кому-то покажется банальным, но в сети мало информации по конкретным действиям. Я много потратил времени на поиски того как в удобной форме подружить Excel и Python. Ниже подробно расписываю, что нужно делать чтобы работа с "Python" в файл Excel стала удобной, а главное чтобы файл эксель можно удобно было передать другому человеку, который ничего не знает о программировании и у которого на компьютере отсутствует Python и при этом все работало (это возможно если установить Python на общем сетевом диске или передать файл вместе с папкой в которой установлен Python).
Идея не моя, вдохновителем улучшений является сайт .
Во вложении имеется файл Excel из которого возможен удобный запуск скриптов языка программирования "Python" (точно такой же как запуск макросов VBA).
На сайте автономная работа файла Excel с кодом Python предлагается только по платной подписке до версии "PRO", а бесплатные решения, предлагаемые на сайте не так удобны, так как требуют чтобы скрипт с расширением ".py" размещался отдельным файлом в той же папке что и файл Excel и был назван тем же именем что и файл Excel.
Удобная возможность запуска языка программирования "Python" из файла Excel базируется на трех решениях:
По ссылке предлагается несколько вариантов: с предустановленными библиотеками и без. Нет разницы в том что вы выберете, чтобы вес портативной сборки был меньше я беру голую сборку (голую сборку определить можно по весу скачиваемого файла - около 25мб). Разархивируйте скаченную папку в любое место на компьютере или в сети (на работе).
Шаг 1. Установить библиотеку "xlwings" для Python в "WinPython Command Prompt.exe":
| Код |
|---|
pip install xlwings |
Шаг 2. Скачайте файл "" и открыв его пропишите путь к файлу "python.exe" в ячейке b1 на листе "xlwings.conf".
У меня этот путь выглядит так:
C:\Winpython64-3.10.1\python-3.10.1.amd64\python.exe
По совершению указанных действий папка с Python (и библиотекой "xlwings") станет портативной, ничего не слетит, если вы поставите другие библиотеки и затем решите переместить эту папку в другое место на своем компьютере или поделитесь папкой с коллегой. При перемещении сборки на другой компьютер она сможет работать с файлом , требуется только задать правильно путь в ячейке b1 на листе "xlwings.conf" (шаг 2).
2. Файл Excel с модулем "xlwings" для удобной работы с библиотекой "xlwings" для Python
Чтобы во всем этом разобраться, рекомендую ознакомится с , но если у вас есть время на чтение понятной литературы, то рекомендую бесплатно cкачать и прочесть "Python for Excel" от автора этой библиотеки (Felix Zumstein). Книга на английском языке. Ориентирована на людей мало знающих программирование, все хорошо объясняется с азов. Гугл хром отлично переводит и сайт и книгу.Некоторые подробности, которые будут полезны по мере погружения в изучение библиотеки "xlwings":
надстройка Excel "xlwings" для работы файла не используется, у меня она даже не установлена.
Исходным файлом является файл "Standalone", который после установки библиотеки "xlwings" (о том как установить библиотеку я написал в 1 пункте) вы сможете найти тут:
"Ваша папка с Python"\App\Python\Lib\site-packages\xlwings\quickstart_standalone.xlsm"
Из исходного файла я взял лист "xlwings.conf" и модуль VBA "xlwings", этот модуль вы можете обнаружить через штатный редактор VBA. Подробности о Standalone-версии, по-моему, есть только в упомянутой книге "Python for Excel". А на сайте информации, к сожалению, не много, - смотрите .
Отличие моего файла от исходного файла "Standalone" в том, что для его работы не требуется размещать скрипт Python в той же папке и под тем же именем что и файл Excel. На сайте опция со спрятанным кодом Python внутри книги Excel предлагается только по платной подписке до версии "PRO", и эта платная возможность реализована там каким-то другим способом (не тем, которому я даю описание).
3. Хранилище файлов из листа Excel.
Позволяет хранить скрипты с кодом Python прямо в файле Excel.Если бы не нашлось этого решения, пришлось бы хранить файлы с расширениями ".py" отдельно от файла Excel в одной папке, либо где-то отдельно и прописывать к ним пути в ячейке "B3" листа "xlwings.conf", что не так прикольно. К счастью, оказалось, что код с cyberforum.ru прекрасно скопировался через штатный редактор VBA прямо в лист "xlwings.conf" Standalone-версии, которая упоминается в пункте 2. Адаптации кода не потребовалось (я отредактировал только необязательный "test"). Если потребуется, то все описываемые действия из пункта 3 легко повторить, но вам ничего не нужно делать, при скачивании мной прилагаемого файла:
чтобы увидеть файл скрипта "Python", хранящийся в Excel просто запустите макрос "START_MENU"
Запуск:
А. Скачайте файл Excel ниже.Б. Скачайте портативную чистую версию Python отсюда:
В. Проделайте шаги 1-2 из пункта 1.
Г. В файле Excel нажмите кнопку теста на работоспособность.
Если вы видите, что меняется текст в ячейке "B14" после нажатия кнопки теста, то принимайте поздравления - ваша сборка полностью готов к плаванию в океане под названием "Python"!
Важно: Для просмотра скриптов Python (файлы с расширениями ".py"), их выгрузки для редактирования и загрузки новых редакций, пользуйтесь макросом "START_MENU". Описание макроса и его функционала найдете по ссылке в 3 пункте.
Оставлю это здесь:1) pywin32 устанавливается автоматически на первом шаге и может так случиться, что придется откатить его до предшествующей версии с помощью "pip install pywin32==302" где "302" это номер версии до которой нужно откатиться (у вас вероятно будет не 302-я версия, смотрите через команду "pip list").
2) Если в пункте №1 вы скачали облегченную портативную сборку и хотите чтобы в ней заработал вложенный файл "WinPython Control Panel.exe", который скачался вместе со сборкой Python, выполните в "WinPython Command Prompt.exe":
| Код |
|---|
pip install PyQt5 pip install packaging |
Требования: любой Windows 8+, 2 ГБ оперативной памяти
Тестировалось 25.12.2021 на сборке:
Python x64 v.3.10.1
pywin32 v.303
xlwings v.0.25.3