Хочу поделится наработками, которые получились в процессе реализации своих задач.
Может описываемое тут кому-то покажется банальным, но в сети мало информации по конкретным действиям. Я много потратил времени на поиски того как в удобной форме подружить Excel и Python. Ниже подробно расписываю, что нужно делать чтобы работа с "Python" в файл Excel стала удобной, а главное чтобы файл эксель можно удобно было передать другому человеку, который ничего не знает о программировании и у которого на компьютере отсутствует Python и при этом все работало (это возможно если установить Python на общем сетевом диске или передать файл вместе с папкой в которой установлен Python).
Идея не моя, вдохновителем улучшений является сайт
Во вложении имеется файл Excel из которого возможен удобный запуск скриптов языка программирования "Python" (точно такой же как запуск макросов VBA).
На сайте
Удобная возможность запуска языка программирования "Python" из файла Excel базируется на трех решениях:
По ссылке предлагается несколько вариантов: с предустановленными библиотеками и без. Нет разницы в том что вы выберете, чтобы вес портативной сборки был меньше я беру голую сборку (голую сборку определить можно по весу скачиваемого файла - около 25мб). Разархивируйте скаченную папку в любое место на компьютере или в сети (на работе).
Шаг 1. Установить библиотеку "xlwings" для Python в "WinPython Command Prompt.exe":
Код |
---|
pip install xlwings |
Шаг 2. Скачайте файл "
У меня этот путь выглядит так:
C:\Winpython64-3.10.1\python-3.10.1.amd64\python.exe
По совершению указанных действий папка с Python (и библиотекой "xlwings") станет портативной, ничего не слетит, если вы поставите другие библиотеки и затем решите переместить эту папку в другое место на своем компьютере или поделитесь папкой с коллегой. При перемещении сборки на другой компьютер она сможет работать с файлом
2. Файл Excel с модулем "xlwings" для удобной работы с библиотекой "xlwings" для Python
Чтобы во всем этом разобраться, рекомендую ознакомится сНекоторые подробности, которые будут полезны по мере погружения в изучение библиотеки "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. На сайте
3. Хранилище файлов из листа 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