我正在为当地的慈善机构建立一个网站应用程序,它进展顺利,我似乎克服了大多数挑战,但这是一个很大的问题,我甚至不知道是否可能。
我希望用户能够在服务器端通过邮件合并文本文件和预建模板(dotx)文件来单击按钮并输出Microsoft Word文件。 该文本文件只包含一条从mySQL数据库中获取并通过PHP生成的记录。
我知道使用XSLT修改文档zip中的文档文件,但我无法访问慈善机构服务器上的php.ini,无论如何,考虑到使用它有多简单,它似乎有点太多了创建一个宏来邮件合并。
所以我现在考虑使用Word对象模型,它必须通过Javascript,但大多数用户使用Firefox或Chrome,所以例如。 var oApplication = new ActiveXObject("Application.Word");
可以使用这些浏览器,还是只能使用= new Object("Application.Word");
?
我也可以确认Javascript中的对象将具有与VBA中相同的函数名称和参数,我从未尝试通过Javascript使用Word,但如果它与VBA相同,那么我应该没问题。< / p>
我使用localhost进行开发,文件结构为:
其中data.txt是PHP生成的从数据库中获取的数据的CSV。
答案 0 :(得分:2)
仅在IE中支持ActiveX / COM自动化(访问word.application
所需),没有任何其他浏览器以任何方式支持它。
如果支持 ,您仍然无法在客户端内轻松地与服务器上的Word文件进行交互。
您可以在服务器(Generating word documents with PHP)上生成文件,虽然要访问实际构建到Word本身的功能(如邮件合并),您需要以编程方式与已安装的Word实际实例进行交互。服务器(使用PHP / COM / word.application
)来控制它,为了避免这种情况,您可以手动执行邮件合并所做的任何事情。
另一种方法是使Word文档包含与PHP Web服务交互的VBA代码以生成输出文档。
答案 1 :(得分:0)
网络服务是您的应用程序的选项吗?如果是这样,请查看Docmosis - 您可以上传文档模板,然后发送包含数据的请求以进行邮件合并,并使用各种选项(包括MS word)输出结果。