2012-02-19 17 views
0

私は、postgresデータベーステーブルをVBA経由でExcelにインポートし、誰かが編集してから新しいテーブルとしてエクスポートできるプログラムを作成しようとしています。 VBAを介してデータベースに格納します。リモートpostgresデータベースとExcelワークブックの間でインポート/エクスポートフローを有効にする

これは、プロセスがウィンドウズとマックバージョンのオフィスの両方で動作する必要がない場合に、比較的単純な(手順が複雑ですが)作業です。

私の元の計画は、ユーザーにpythonをダウンロードさせ、psycopgドライバをインストールさせるというものでした。その後、Pythonスクリプトをファイルに書き込んで、PythonスクリプトにSQL文字列を渡し、Pythonがデータベースから直接データを取得するように、vbaモジュールに文字列としてPythonスクリプトを格納します。 Pythonはファイルを分割し、VBAループを引き起こし、ファイルが存在するのを待って終了し、データをインポートしてスプレッドシートを埋めます。

書くことは、スクリプトを呼び出す前にexcelがアップロードするデータを含むシートをpostgresにエクスポートすることを除いて、同じプロセスを必要とします。

残念なことに、Macにpsycopg2をインストールすると、「xcode」と呼ばれる1GB以上の大容量パッケージをダウンロードせずにパッケージをダウンロードしてインストールすることはできないため、Macをインストールすると悲惨な状態になります単純なpythonスクリプトを実行してpostgresに接続することができます(実際には動作しません)!言うまでもなく、これは単に受け入れられないものです。

私のプログラミング経験は、主にローカルマシン上で実行するためのスクリプトを作成することから来ているので、私はこれをどのように達成するのかは分かりません。

私が考えることができる最も簡単な方法は、postgresを格納しているubuntuマシン上のPythonベースのサーバーを設定し、Excelのワークブックで生成されたローカルのPythonスクリプトが、 postgresデータベースにアップロードします。データベースからexcelするためにエクスポートするには、ローカルのpythonスクリプトはpythonベースのサーバーにコマンドを送信し、ftpサーバーにデータをアップロードします。その後、ローカルのPythonスクリプトはこのデータを読み込み、処理してファイルに出力し、Excelにアクセスできるようにします。

基本的には、ユーザのマシンから実行されるpythonプログラムがpostgresハウジングマシンに接続し、ダウンロード用のファイルを生成するか、何らかの形でデータを戻すスクリプトを実行するようにするソリューションが必要ですユーザーが外部プログラムをダウンロードする必要なく、ユーザーのPythonプログラムに直接アクセスできます。

私はjavaの基礎を学ぶプロセスを始めました。したがって、javaがこのタスクを達成するためのより簡単な方法を可能にすれば、私はそれを試してみたいと思います。この記事の日付現在、私はJavaで1.5日しかプログラミングされていませんでした...だから、留意しておいてください。

ありがとうございます!

+0

WindowsコンピュータのVBAからデータベースに直接問い合わせるのは簡単です。私はMac OSに精通していないが、PostgreSQLにはMac用のODBCドライバがあるので、それもうまくいくと思っていただろうか? – assylias

答えて

1

これを容易にするにはPyInstallerを使用できるはずです。基本的には、すべての依存関係がバンドルされたスタンドアロンの実行可能ファイルを作成したいと考えています。

関連する問題