Создать / Редактировать MS Word & Word Идеальные документы в Django?

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

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

Есть идеи?

Спасибо!

2 ответа

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

conda install lxml
pip install docx-mailmerge

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

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

В диалоговом окне "Поле" выберите "MergeField" в списке "Имена полей". В поле Имя введите имя, которое вы хотите для поля. В этом случае мы используем название компании. 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

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

Другие вопросы по тегам