2012-02-19 79 views
0

我想创建一个程序,可以通过VBA导入一个Postgres数据库表到Excel,让别人进行编辑,然后将编辑的数据导出为一个新表通过VBA进入数据库。启用导入/导出流和Excel工作簿

这将是一个相对简单的(虽然在程序上令人费解的)任务来完成,如果过程没有与Windows和办公MAC版本的工作。

我原来的计划是简单的让用户下载蟒蛇,然后安装psycopg驱动程序。然后,我会将一个Python脚本作为字符串存储在vba模块中,该模块会将python脚本写入文件,将一个SQL字符串传递给python脚本,并让python直接从数据库获取数据。 Python会分割出一个文件,这会导致VBA循环,等待文件存在,终止然后导入数据并填充一个表格。

写作将简单地意味着不同之处在于将Excel中调用脚本之前包含数据被上传到postgres的纸张导出相同的处理。

不幸的是,如果用户在Mac上安装psycopg2,将会让他们处于不幸的状态,因为无法下载大量1+ GB软件包(称为“xcode”),然后安装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 2012-02-20 10:10:14

回答

1

您应该可以使用PyInstaller来实现此目的。实质上,您希望构建一个独立的可执行文件,并将所有依赖关系捆绑在一起。

相关问题