Создать / Редактировать 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')
Я не знаю, как сделать именно то, что вы просите, но я бы посоветовал вам также заняться созданием PDF-файлов с помощью Django. Если вы хотите отправлять информацию только в определенном формате, лучше использовать PFD, поскольку он более переносим на разные платформы. Вы также можете посмотреть эту документацию, чтобы узнать, как отправлять электронные письма от Django.