Включение потоков импорта / экспорта между удаленной базой данных postgres и книгами Excel - PullRequest
0 голосов
/ 19 февраля 2012

Я пытаюсь создать программу, которая может импортировать таблицу базы данных postgres в Excel через VBA, позволить кому-то вносить изменения, а затем экспортировать отредактированные данные в виде новой таблицы в базу данных через VBA.

Это было бы относительно простой (хотя процедурно запутанной) задачей, которую нужно выполнить, если бы этот процесс не должен был работать как с офисными версиями Windows, так и с Mac.

Мой первоначальный план состоял в том, чтобы пользователи просто загружали python, а затем устанавливали драйвер psycopg. Затем я сохраню скрипт Python в виде строки в модуле vba, который запишет скрипт Python в файл, передаст строку SQL в скрипт Python и попросит Python получить данные непосредственно из базы данных. Затем Python выделяет файл, что приводит к завершению цикла VBA, ожидающего его существования, а затем импортирует данные и заполняет электронную таблицу.

Запись просто повлекла бы за собой тот же процесс, за исключением того, что Excel экспортировал лист, содержащий данные для загрузки в postgres перед вызовом скрипта.

К сожалению, если пользователь установит psycopg2 на Mac, это оставит его в плачевном состоянии, так как пакет не может быть просто загружен и установлен без загрузки массивного пакета объемом 1 ГБ, известного как «xcode», а затем установки портов Mac. просто чтобы иметь возможность запустить простой скрипт на python для подключения к postgres (и даже это на самом деле не работает)! Излишне говорить, что это просто недопустимо.

Мой опыт программирования в основном связан с созданием сценариев для запуска на локальных машинах, поэтому я не совсем уверен, как бы я это сделал.

Самый простой способ, о котором я могу подумать, - это установить какой-нибудь сервер на основе Python на машине с Ubuntu, на котором размещены postgres и каким-то образом разрешить локальным сценариям на Python, генерируемым книгами Excel, отправлять ему потоки данных, которые затем будет обрабатываться сценарием. загрузить в базу данных postgres. Для экспорта из базы данных в Excel локальный скрипт на Python будет отправлять команды на сервер на основе Python, который затем будет загружать данные на FTP-сервер. Впоследствии локальный сценарий Python будет выгружать эти данные, обрабатывать их и выводить в файл, предоставляя Excel доступ к ним.

По сути, мне просто нужно решение, которое позволяет программе на python, выполняемой с компьютера пользователя, подключаться к компьютеру, на котором размещен postgres, и предписывать ему запускать скрипт, который либо генерирует файл для загрузки, либо каким-либо образом передает данные обратно напрямую. в программу Python пользователя, не требуя от пользователя загрузки каких-либо внешних программ.

Я начал процесс изучения основ java, поэтому, если java допускает более простой способ выполнения этой задачи, я бы очень хотел попробовать это. На момент написания этой статьи я программировал на Java только 1,5 дня ... поэтому, пожалуйста, помните об этом при ответе.

Заранее спасибо!

1 Ответ

1 голос
/ 19 февраля 2012

Вы должны иметь возможность использовать PyInstaller , чтобы облегчить это.По сути, вы хотите создать автономный исполняемый файл со всеми вашими зависимостями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...