Как создать документ Word с помощью Python?

Я хотел бы создать документ Word с помощью Python, однако я хочу повторно использовать как можно больше существующего кода создания документа. В настоящее время я использую XSLT для создания HTML-файла, который я программно преобразовать в файл PDF. Однако мой клиент теперь просит, чтобы тот же документ был доступен в Word (.формат doc.

до сих пор мне не удалось найти решения этой проблемы. Кто-нибудь знает о библиотеке с открытым исходным кодом (или * gulp * проприетарное решение), которое может помочь решить эту проблему?

Примечание: все возможные решения должны работать на Linux. Я считаю, что это исключает pywin32.

5 ответов


несколько способов создания документов Word с помощью Python:

изменить:

поскольку COM не может быть и речи, я предлагаю следующее (вдохновленный ответом @kcrumley):

используя библиотеку UNO для автоматизации Open Office из python, откройте HTML-файл в OOWriter, а затем сохраните как .доктор.

EDIT2:

теперь есть чистый Python проект python-docx это выглядит хорошо (я не использовал его).


пробовал в Python-docx в С succes, это позволяет создавать и редактировать docx в Python


1) Если вы хотите просто вставить еще один шаг в конец текущего конвейера, теперь есть несколько вариантов для преобразования PDF-файлов в файлы Word. Я не пробовал!--1-->123PDFConverter, но редакторы CNET рекомендуют его (та же ссылка); он имеет бесплатную пробную версию; и он поддерживает автоматизацию. Как и в любом стороннем конвертере файлов, ваш пробег может варьироваться в зависимости от того, насколько сложны ваши PDF-файлы и насколько хорошо программное обеспечение на самом деле.

2) построение на codeape's Com automation suggestion, если вы com automate Word, вы можете открыть свой фактический HTML-файл в Word и вызвать команду "Сохранить как", чтобы сохранить его как файл DOC.


мне пришлось сделать что-то подобное с python. Это далеко больше ручной работы, чем я хочу, но документы, созданные с помощью pyRTF, вызывали сбой Word и OpenOffice, и у меня не было мотивации пытаться понять это.

Я нашел его самым простым (но не идеальным), чтобы создать шаблон документа Word со стилями, которые я хочу. Затем мой Python создает HTML-файл,<p> стили помечаются после слов стили. Затем я открываю HTML-файл в Word и открыть шаблон в Word. Я вырезаю и вставляю весь текст из HTML-файла в шаблон, а Word переформатирует его в соответствии со стилями, которые я установил ранее. Это работает для случайного файла в моей ситуации. Это может не сработать в вашей ситуации. К ВАШЕМУ СВЕДЕНИЮ.


можете ли вы написать это как файлы WordML XML и zip его в.формат docx? Все, что нужно вашему клиенту, это фильтр Word 2007, если они еще не находятся в Office 2007.

есть много примеров там.

вы также можете загрузить XML непосредственно в Word, начиная с 2003 года, или Я сказал.