2012-06-20 59 views
0

我正在爲當地慈善機構建設一個網站應用程序,它進展順利,我似乎克服了大多數挑戰,但這是一個我遇到的巨大問題,而且我甚至沒有知道這是否可能。通過Javascript MS Word對象模型:郵件合併

我希望用戶能夠在服務器端通過郵件合併文本文件和預先構建的模板(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中,我從來沒有嘗試過使用Word通過Javascript,但如果它是相同的VBA,那麼我應該沒事。

我用我的發展本地主機和文件結構是:

  • 模板\ conformation.docx
  • 模板\ data.txt中

其中data.txt中產生的PHP從數據庫中取得的數據的CSV。

回答

2

僅在IE中支持ActiveX/COM自動化(訪問word.application所需的),沒有其他瀏覽器以任何方式支持它。

如果它支持,您仍然無法從客戶端輕鬆地與服務器上的Word文件進行交互。

您可以在服務器上生成文件(Generating word documents with PHP),但要訪問實際內置於Word本身的功能(如郵件合併),您需要以編程方式與已安裝在服務器上的Word的實例進行交互使用PHP/COM/word.application)來控制它,爲了避免這種情況,你可以手動進行郵件合併。

另一種選擇是將Word文檔包含與PHP Web服務交互以生成輸出文檔的VBA代碼。

0

Web服務是您的應用程序的一個選項嗎?如果是這樣,看看Docmosis - 你可以上傳文檔模板,然後發送請求與數據做郵件合併輸出結果與各種選項,包括MS字。