2011-06-24 134 views
1

是否可以使用django創建和/或編輯MS Word和Word Perfect文檔?我希望能夠允許用戶填寫表單並將表單字段插入到MS Word/Word Perfect文檔中。或者,表單字段用於創建一個新的MS Word/Word Perfect文檔。然後,用戶可以通過電子郵件將該文檔發送給可能無法訪問django網絡應用程序的其他人。在Django中創建/編輯MS Word和Word Perfect文檔?

我有一個客戶誰需要此功能,我想保持在網絡應用程序中的所有。

任何想法?

謝謝!

+0

字更完美?那甚至是一件事嗎?等等,如果你喜歡的話,我可以在某個地方找到一些WordStar和MultiMate文檔... –

回答

0

我不知道如何去做你所要求的,但我建議你也考慮用Django創建PDFs。如果您只想以特定格式發送信息,那麼PFD可能會更好,因爲它在各個平臺上更具可移植性。您也可以查看this documentation以瞭解如何從Django發送電子郵件。

+0

感謝您的回覆。但是,在這種情況下PDF是不夠的。客戶需要專門的MS Word/Word Perfect。這些文件被髮送給其他人並需要使用這些文件類型。 – Garfonzo

0

對於MS Word,您可以使用docx-mailmerge。運行以下命令來安裝(由DOCX,郵件合併所需dependecy)LXML和DOCX,郵件合併

conda install lxml 
pip install docx-mailmerge 

爲了DOCX,郵件合併才能正常工作,你需要創建一個標準的Word文檔,並確定適當的合併域。以下示例適用於Word 2010.其他版本的Word應該類似。實際上,我花了一段時間才弄清楚這個過程,但一旦你做了幾次,它就非常簡單。

啓動Word並創建基本文檔結構。然後將光標放在合併數據應插入的位置,然後選擇插入 - >快速部件 - >字段..: 字快速部件

從字段對話框中,選擇字段中的「合併字段」選項名單。在字段名稱中,輸入您想要的字段名稱。在這種情況下,我們使用的是商家名稱。 單詞添加字段

單擊確定後,您應該在Word文檔中看到如下所示:<>。您可以繼續創建包含所有必需字段的文檔。

from __future__ import print_function 
    from mailmerge import MailMerge 
    from datetime import date 

    template = "Practical-Business-Python.docx" 
    document = MailMerge(template) 

    document.merge(
    status='Gold', 
    city='Springfield', 
    phone_number='800-555-5555', 
    Business='Cool Shoes', 
    zip='55555', 
    purchases='$500,000', 
    shipping_limit='$500', 
    state='MO', 
    address='1234 Main Street', 
    date='{:%d-%b-%Y}'.format(date.today()), 
    discount='5%', 
    recipient='Mr. Jones') 

    document.write('test-output.docx') 

http://pbpython.com/python-word-template.html