Создать / Редактировать MS Word & Word Идеальные документы в Django? - PullRequest
1 голос
/ 24 июня 2011

Можно ли создавать и / или редактировать документы MS Word и Word Perfect с помощью django?Я хотел бы иметь возможность позволить пользователю заполнять форму и вставлять поля формы в документ MS Word / Word Perfect.Или поля формы используются для создания нового документа MS Word / Word Perfect.Затем пользователь может отправить этот документ по электронной почте другим лицам, которые могут не иметь доступа к веб-приложению django.

У меня есть клиент, которому нужна эта функциональность, и я хотел бы сохранить все это в веб-приложении.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 июля 2017

Для MS Word вы можете использовать docx-mailmerge. Выполните следующие команды для установки lxml (зависимости, необходимой для docx-mailmerge) и docx-mailmerge

conda install lxml
pip install docx-mailmerge

Для правильной работы docx-mailmerge необходимо создать стандартный документ Word и определить соответствующие поля слияния. Ниже приведены примеры для Word 2010. Другие версии Word должны быть похожими. На самом деле мне потребовалось некоторое время, чтобы понять этот процесс, но как только вы сделаете это пару раз, это будет довольно просто.

Запустите Word и создайте базовую структуру документа. Затем поместите курсор в место, куда должны быть вставлены объединенные данные, и выберите «Вставка» -> «Быстрые детали» -> «Поле»: Word Quick Parts

В диалоговом окне «Поле» выберите «MergeField» в списке «Имена полей». В поле Имя введите имя, которое вы хотите для поля. В этом случае мы используем название компании. Поле добавления слова

Как только вы нажмете «ОК», вы должны увидеть что-то вроде этого: <> в документе 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

0 голосов
/ 24 июня 2011

Я не знаю, как сделать именно то, что вы просите, но я бы посоветовал вам также заняться созданием PDF с Django.Если вы хотите отправлять информацию только в определенном формате, лучше использовать PFD, поскольку он более переносим на разные платформы.Вы также можете посмотреть эту документацию о том, как отправлять электронные письма от Django.

...