0

我正在为当地的慈善机构构建一个网站应用程序,进展顺利,我似乎克服了大多数挑战,但这是我遇到的一个巨大问题,我什至不知道这是否可能。

我希望用户能够单击一个按钮并通过邮件在服务器端合并文本文件和预建模板 (dotx) 文件来输出 Microsoft Word 文件。该文本文件将仅包含一条从 mySQL 数据库中获取并通过 PHP 生成的记录。

我知道使用 XSLT 来修改文档 zip 中的文档文件,但我无法访问 charities 服务器上的 php.ini,无论如何考虑到使用创建宏有多简单,这似乎有点太多了邮件合并。

所以我现在正在考虑使用 Word 对象模型,它必须通过 Javascript,但大多数用户使用 Firefox 或 Chrome,例如。var oApplication = new ActiveXObject("Application.Word");使用这些浏览器,还是我可以简单地使用= new Object("Application.Word");

我也可以确认 Javascript 中的对象将具有与 VBA 中相同的函数名称和参数,我从未尝试过通过 Javascript 使用 Word,但如果它与 VBA 相同,那么我应该没问题。

我正在使用我的本地主机进行开发,文件结构是:

  • 模板\构象.docx
  • 模板\data.txt

其中 data.txt 是 PHP 生成的从数据库中获取的数据的 CSV。

4

2 回答 2

2

只有 IE 支持ActiveX/COM 自动化(需要访问word.application),没有其他浏览器以任何方式支持它。

如果支持它您仍然无法从客户端轻松地与服务器上的 Word 文件进行交互。

您可以在服务器上生成文件(使用 PHP 生成 word 文档),但要访问实际内置于 Word 本身的功能(如邮件合并),您需要以编程方式与安装在服务器上的 Word 的真实实例进行交互(使用 PHP/COM/ word.application) 来控制它,为避免这种情况,您将手动执行邮件合并所做的任何事情。

另一种选择是使用包含 VBA 代码的 Word 文档,该代码与 PHP Web 服务交互以生成输出文档。

于 2012-06-20T13:53:51.267 回答
0

您的应用程序可以选择 Web 服务吗?如果是这样,请查看 Docmosis - 您可以上传 doc 模板,然后发送带有数据的请求以进行邮件合并,并使用包括 MS word 在内的各种选项输出结果。

于 2012-06-29T09:05:45.510 回答