Как установить библиотеку docx в python
Перейти к содержимому

Как установить библиотеку docx в python

  • автор:

Installing¶

python-docx versions 0.3.0 and later are not API-compatible with prior versions.

python-docx is hosted on PyPI, so installation is relatively simple, and just depends on what installation utilities you have installed.

python-docx may be installed with pip if you have it available:

pip install python-docx 

python-docx can also be installed using easy_install , although this is discouraged:

easy_install python-docx 

If neither pip nor easy_install is available, it can be installed manually by downloading the distribution from PyPI, unpacking the tarball, and running setup.py :

tar xvzf python-docx-version>.tar.gz cd python-docx-version> python setup.py install 

python-docx depends on the lxml package. Both pip and easy_install will take care of satisfying those dependencies for you, but if you use this last method you will need to install those yourself.

Dependencies¶

  • Python 2.6, 2.7, 3.3, or 3.4
  • lxml >= 2.3.2

Объект Table модуля python-docx

Объект Table модуля python-docx представляет собой прокси-объект, который оборачивает элемент WordprocessingML .

Объект Table не создается вручную, а возвращается в результате вызова метода Document.add_table() .

Пример добавления таблицы в документ :

from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH # создание пустого документа doc = Document() # данные таблицы без названий колонок items = ( (7, '1024', 'Плюшевые котята'), (3, '2042', 'Меховые пчелы'), (1, '1288', 'Ошейники для пуделей'), ) # добавляем таблицу с одной строкой # для заполнения названий колонок table = doc.add_table(1, len(items[0])) table.style = 'Table Grid' # Получаем строку с колонками из добавленной таблицы head_cells = table.rows[0].cells # добавляем названия колонок for i, item in enumerate(['Кол-во', 'ID', 'Описание']): p = head_cells[i].paragraphs[0] # название колонки p.add_run(item).bold = True # выравниваем посередине p.alignment = WD_ALIGN_PARAGRAPH.CENTER # добавляем данные к существующей таблице for row in items: # добавляем строку с ячейками к объекту таблицы cells = table.add_row().cells for i, item in enumerate(row): # вставляем данные в ячейки cells[i].text = str(item) # если последняя ячейка if i == 2: # изменим шрифт cells[i].paragraphs[0].runs[0].font.name = 'Arial' doc.save('test.docx') 

Свойства и методы объекта Table .

  • Table.add_column() добавляет колонку,
  • Table.add_row() добавляет строку,
  • Table.alignment выравнивание таблицы,
  • Table.autofit авто подгонка ширины колонок таблицы,
  • Table.cell() возвращает экземпляр определенной ячейки,
  • Table.column_cells() список ячеек в определенном столбце,
  • Table.columns список столбцов таблицы,
  • Table.row_cells() список ячеек в определенной строке,
  • Table.rows список строк таблицы,
  • Table.style стиль таблицы,
  • Table.table_direction направление, в котором упорядочены ячейки таблицы.

Table.add_column(width) :

Метод Table.add_column() добавляет колонку шириной width в крайний правый угол таблицы и возвращает экземпляр Column добавленной колонки.

Объект Column имеет свойства:
  • cells — последовательность экземпляров Cell , соответствующих ячейкам в этом столбце.
  • table — ссылка на объект таблицы Table , которому принадлежит этот столбец.
  • width — ширина этого столбца в величине EMU или None , если ширина явно не задана.

Table.add_row() :

Метод Table.add_row() добавляет строку в самую нижнюю часть таблицы и возвращает экземпляр Row , только что добавленной строки.

Объект Row имеет свойства:
  • cells — последовательность экземпляров Cell , соответствующих ячейкам в этом столбце.
  • table — ссылка на объект таблицы Table , которому принадлежит этот столбец.
  • height — возвращает/устанавливает объект Length , представляющий высоту этой ячейки, или None , если высота явно не задана.
  • height_rule — возвращает/устанавливает правило высоты этой ячейки как член перечисления WD_ROW_HEIGHT_RULE или None , если явное правило высоты не установлено.
Table.alignment :

Свойство Table.alignment возвращает/устанавливает правило, которое определяет расположение этой таблицы между полями страницы. Значение является членом перечисления WD_TABLE_ALIGNMENT или None . Значение None говорит о том, что действующее значение наследуется от иерархии стилей.

Table.autofit :

Свойство Table.autofit принимает/возвращает True , если ширина столбцов автоматически регулируется для лучшего соответствия содержимому ячеек и False , если макет таблицы фиксированный.

Ширина столбца корректируется в любом случае, если общая ширина столбцов превышает ширину страницы.

Table.cell(row_idx, col_idx) :

Метод Table.cell() возвращает экземпляр Сell , соответствующий ячейке таблицы на пересечении row_idx , col_idx , где (0, 0) является верхней, самой левой ячейкой.

Table.column_cells(column_idx) :

Метод Table.column_cells() представляет собой последовательность ячеек Сell в столбце с номером column_idx в этой таблице.

Table.columns :

Свойство Table.columns представляет собой последовательность объектов столбцов Column в этой таблице.

Table.row_cells(row_idx) :

Метод Table.row_cells() представляет собой последовательность ячеек Сell в строке с номером row_idx в этой таблице.

Table.rows :

Свойство Table.rows представляет собой последовательность строк Row в этой таблице. Поддерживает функцию len() , итерацию, доступ к строке по индексу, а так же получение среза строк.

Table.style :

Свойство Table.style устанавливает/возвращает объект стиля таблицы Style или Имя Стиля Таблицы, которое встроено в пользовательский интерфейс редактора MS Word.

Если таблица не имеет стиля, то возвращается стиль таблицы по умолчанию для документа (часто обычная таблица). Назначение этому свойству значения None удаляет любой применяемый напрямую стиль таблицы, заставляя его наследовать стиль таблицы документа по умолчанию.

Обратите внимание, что имя стиля таблицы немного отличается от имени, отображаемого в пользовательском интерфейсе MS Word. Дефис, если он есть, то его необходимо удалить. Например, Light Shading — Accent 1 становится Light Shading Accent 1 .

Важно. Встроенные стили хранятся в файле WordprocessingML под своим английским именем, например ‘Table Grid’ , и не зависят от локализации MS Word. Так как модуль python-docx работает с файлом WordprocessingML , то поиск стиля должен использовать английское имя. Если файл WordprocessingML не найден (MS Word не установлен, например в OS Linux) то модуль python-docx работает со своей версией этого файла. Что бы создать сопоставление между именами стилей на русском языке и именами на английском языке посетите эту ссылку.

Table.table_direction :

Свойство Table.table_direction это элемент WD_TABLE_DIRECTION , который указывает направление, в котором упорядочены ячейки таблицы, например, WD_TABLE_DIRECTION.LTR или WD_TABLE_DIRECTION.RTL .

Значение None указывает, что значение наследуется от иерархии стилей.

from docx.enum.table import WD_TABLE_DIRECTION table = document.add_table(3, 3) table.direction = WD_TABLE_DIRECTION.RTL 

Свойства и методы объекта ячейки таблицы Cell .

  • Cell.add_paragraph() добавляет абзац в ячейку,
  • Cell.add_table() добавляет таблицу в ячейку,
  • Cell.merge() объединяет ячейки в одну,
  • Cell.paragraphs список объектов абзацев в ячейке,
  • Cell.tables список таблиц в ячейке,
  • Cell.text ВСЕ содержимое ячейки в виде строки текста,
  • Cell.vertical_alignment вертикальное выравнивание,
  • Cell.width ширина ячейки,
Cell.add_paragraph(text=», style=None) :

Метод Cell.add_paragraph() возвращает недавно добавленный абзац Paragraph в конец содержимого этой ячейки. Если присутствует текст text , то он добавляется к абзацу за один прогон Run . Если указан style , то применяется стиль для этого абзаца. Если стиль не указан или имеет значение None , то результат будет таким, как если бы был применен стиль с именем ‘Normal’ .

Обратите внимание, что на форматирование текста в ячейке может влиять стиль таблицы. Аргумент text может содержать символы табуляции \t , которые преобразуются в соответствующую XML-форму. Текст также может включать символы новой строки \n или возврата каретки \r , каждый из которых преобразуется в разрыв строки.

Cell.add_table(rows, cols) :

Метод Cell.add_table() возвращает недавно добавленную таблицу Paragraph в конец содержимого этой ячейки. После таблицы добавляется пустой абзац, так как спецификация MS Word требует, чтобы последним элементом в каждой ячейке был абзац.

Cell.merge(other_cell) :

Метод Cell.merge() возвращает объединенную ячейку, созданную путем охвата прямоугольной области, в которой эта ячейка и другая ячейка other_cell являются диагональными углами. Вызывает ошибку InvalidSpanError , если ячейки не определяют прямоугольную область.

Cell.paragraphs :

Свойство Cell.paragraphs представляет собой список объектов абзацев в ячейке. Ячейка таблицы должна содержать по крайней мере один элемент уровня блока и заканчиваться абзацем. По умолчанию новая ячейка содержит один абзац. Свойство только для чтения.

Cell.tables :

Свойство Cell.tables представляет собой список объектов таблиц в ячейке в порядке их появления. Свойство только для чтения.

Cell.text :

Свойство Cell.text представляет собой ВСЕ содержимое этой ячейки в виде строки текста. Назначение строки этому свойству заменяет все существующее содержимое одним абзацем Paragraph , содержащим назначенный текст, за один прогон Run .

Cell.vertical_alignment :

Свойство Cell.vertical_alignment возвращает/устанавливает вертикальное выравнивание ячейки как член перечисления WD_CELL_VERTICAL_ALIGNMENT или None .

Значение None указывает, что вертикальное выравнивание для этой ячейки унаследовано. Назначение None приводит к удалению явно определенного вертикального выравнивания и восстановлению наследования.

Cell.width :

Свойство Cell.width возвращает/устанавливает ширину этой ячейки в величине EMU или None , если ширина явно не задана.

  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Изменение макета документа, модуль python-docx
  • Работа с текстом, модуль python-docx
  • Работа с таблицей при помощи модуля python-docx
  • Работа с объектом Style модуля docx-python
  • Работа с рисунками, модуль python-docx
  • Объект Document модуля python-docx
  • Объект Section() модуля python-docx
  • Объект Paragraph модуля python-docx
  • Объект Run модуля python-docx
  • Объект Table модуля python-docx
  • Объект Font модуля python-docx
  • Объект ParagraphFormat модуля python-docx, форматирование абзаца
  • Объект длинны Length модуля python-docx
  • Константы/перечисления модуля python-docx
  • Создание документов DOCX из шаблонов jinja2

Python API для создания и редактирования документов Microsoft ® Word

Библиотека Python с открытым исходным кодом для управления файлами MS Word, добавления таблиц и изображений в файлы Word DOCX и многого другого.

Что такое Python-DOCX?

Python-DOCX — это библиотека Python с открытым исходным кодом, которая дает разработчикам программного обеспечения возможность работать с Microsoft Word (Docx) в своих собственных приложениях. API может создавать и изменять документы Word с расширением файла .docx.

API очень производительный и поддерживает несколько важных функций обработки текстов, таких как открытие документа, добавление абзаца, добавление заголовка, добавление разрыва страницы, добавление таблицы, вставка изображений, применение стиля абзаца, форматирование текста и многое другое.

  • С одного взгляда
  • Независимость от платформы
  • Вспомогательные форматы файлов

С одного взгляда

Обзор функций Python-DOCX.

  • Создать DOCX
  • Изменить DOCX
  • Добавить абзацы
  • Добавить таблицу
  • Вставить изображение
  • Форматирование текста
  • Добавить заголовок
  • Разрыв страницы
  • Установить цвета
  • Выравнивание текста
  • Поддержка закладок

Python-DOCX

Python-DOCX поддерживает популярные форматы файлов сжатия, перечисленные ниже.

Python-DOCX

Независимость от платформы

Python-DOCX требует только Python 2.6 и выше

  • Python 2.6, 2.7, 3.3 или 3.4
  • lxml >= 2.3.2

Python-DOCX

Начало работы с Python-DOCX

Python-DOCX размещен на PyPI, поэтому его очень просто установить. Его можно установить с помощью pip, используя следующую команду.

Установите Python-DOCX с помощью команды pip

 pip install python-docx 

Его также можно установить через easy_install, но это не рекомендуется.

Python API для создания документов Word DOCX

Библиотека Python-DOCX предоставляет функциональные возможности для создания, а также обработки документов Microsoft Word DOCX. API также позволяет разработчикам программного обеспечения изменять текстовые документы. Теперь, чтобы открыть документ Word, создайте экземпляр вместе с передачей пути к документу. Вы также можете добавлять изображения, добавлять заголовки, вставлять таблицы, поддерживать стили шрифтов, форматировать текст и многое другое. Используя следующие шаги, вы можете легко создать документ Microsoft Word в своем приложении Python.

Создать слово легко

  1. Инициализировать объект FastExcel
  2. Создать книгу
  3. Заполнить данные строки
  4. Написать Эксель

Быстрое создание Word — Python

// initialize document object document = Document() // add heading document.add_heading('Document Title', 0) // add paragraph p = document.add_paragraph('A plain paragraph having some ') // style paragraph p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True // save word document document.save('demo.docx') 

Добавить таблицу в документ Word DOCX

Python-DOCX API позволяет разработчикам добавлять таблицы в документ Word DOCX внутри приложений Python. Существует несколько свойств и методов, связанных с таблицей. Чтобы использовать таблицу, вам нужно будет использовать их, например, доступ к ячейке таблицы, границе таблицы, доступ к отдельным строкам или столбцам и многое другое.

Добавление изображений в файлы Word DOCX

Python-DOCX предоставляет программистам возможность вставлять изображения в документ Word DOCX. Чтобы добавить изображение, вам необходимо указать имя и местоположение изображения. По умолчанию добавленное изображение отображается в исходном размере. Вы можете указать как ширину, так и высоту изображения. Классы Inches и Cm предназначены для того, чтобы вы могли указывать измерения в удобных единицах измерения.

Объект Document модуля python-docx в Python

Объект загруженного из файла/создаваемого документа .docx

Синтаксис:
import docx doc = docx.Document(docx=None) 
Параметры:
  • docx=None — может быть либо путем к файлу .docx (строка), либо к файловым объектом.
Возвращаемое значение:
  • объект документа Document .
Описание:

Класс docx.Document() представляет собой загруженный документ, переданный docx , где аргумент docx может быть либо путем к файлу .docx (строка), либо к файловым объектом.

Если docx=None или отсутствует, то загружается встроенный «шаблон» документа по умолчанию.

Свойства и методы объекта Document .

  • Document.add_heading() добавляет абзац заголовка,
  • Document.add_page_break() добавляет разрыв страницы,
  • Document.add_paragraph() добавляет абзац,
  • Document.add_picture() добавляет изображения в отдельный абзац,
  • Document.add_section() добавляет новую секцию,
  • Document.add_table() добавляет новую таблицу,
  • Document.core_properties основные свойства документа,
  • Document.inline_shapes список объектов изображений InlineShape ,
  • Document.paragraphs список объектов абзацев Paragraph ,
  • Document.save() сохраняет этот документ,
  • Document.sections список объектов раздела Section ,
  • Document.settings объект Settings ,
  • Document.styles объект Styles ,
  • Document.tables список объектов таблиц Table ,

Document.add_heading(text=», level=1) :

Метод Document.add_heading() добавляет абзац с текстом text и отформатированный как заголовок. Абзац добавляется в конец документа. Метод возвращает ссылку на объект этого абзаца.

Стиль заголовка будет определяться уровнем level . Если уровень равен 0, то устанавливается стиль ‘Title’ . Если уровень 1 (или опущен), то используется заголовок ‘Heading 1’ . Эти стили определены в интерфейсе MS Word, и если стоит локализованная версия Word, то эти названия стилей будут переведены на родной язык, например «Заголовок 1».

Вызывает ошибку ValueError , если уровень выходит за пределы диапазона 0 — 9.

from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH # создание пустого документа doc = Document() # без указания аргумента `level` # добавляется заголовок "Heading 1" head = doc.add_heading('Работа с файлами Microsoft Word на Python.') # выравнивание посередине head.alignment = WD_ALIGN_PARAGRAPH.CENTER doc.add_heading('Добавление заголовка второго уровня', level=2) doc.save('test.docx') 

Можно не пользоваться этим методом, а добавлять заголовки вручную, используя метод Document.add_paragraph() с последующим форматированием.

from docx import Document from docx.shared import Pt doc = Document() # добавляем текст прогоном run = doc.add_paragraph().add_run('Заголовок, размером 24 pt.') # размер шрифта run.font.size = Pt(24) run.bold = True doc.save('test.docx') 

Document.add_page_break() :

Метод Document.add_page_break() добавляет разрыв страницы и возвращает ссылку на объект Paragraph , содержащий только этот добавленный разрыв страницы.

По своей сути, метод Document.add_page_break() эквивалентен функции page_break() , которая определена в коде ниже:

from docx import Document def page_break(): """Метод Document.add_page_break()""" from docx.enum.text import WD_BREAK p = doc.add_paragraph() p.add_run().add_break(WD_BREAK.PAGE) doc.add_paragraph() return p doc = Document() page_break() doc.save('test.docx') 

Document.add_paragraph(text=», style=None) :

Метод Document.add_paragraph() добавляет абзац в конец документа, заполненный текстом text и имеющий стиль абзаца style . Возвращает ссылку на объект добавленного абзаца Paragraph .

Аргумент text может содержать символы табуляции \t , которые преобразуются в соответствующую XML-форму. Текст также может содержать символы новой строки \n или возврата каретки \r , каждый из которых преобразуется в разрыв строки.

Аргумент style может принимать строку с Именем Стиля или объект стиля Style .

Важно. Значением аргумента style может быть Имя Стиля, которое встроено в интерфейс MS Word. Встроенные стили хранятся в файле WordprocessingML под своим английским именем, например ‘Heading 1’, и не зависят от локализации MS Word. Так как модуль python-docx работает с файлом WordprocessingML , то и поиск стиля должен использовать английское имя. Если файл WordprocessingML не найден (MS Word не установлен, например в OS Linux) то модуль python-docx работает со своей версией этого файла. Что бы создать сопоставление между именами стилей на местном языке и именами в английском стиле посетите эту ссылку.

Пользовательские стили, которые ВЫ сами настроили, не локализованы и доступны по имени, как они отображается в пользовательском интерфейсе MS Word.

Пример добавления абзаца с текстом и стилем:

from docx import Document from docx.shared import Pt doc = Document() # добавляем абзацы doc.add_paragraph('Абзацы в Word имеют основополагающее значение.') doc.add_paragraph('Стиль абзаца как цитата', style='Intense Quote') doc.add_paragraph('Обычный список.', style='List Bullet') doc.add_paragraph('Обычный список.', style='List Bullet') # можно применить стиль и так doc.add_paragraph('Нумерованный список.').style='List Number' # а можно применить стиль позже, к объекту абзаца `p` p = doc.add_paragraph('Нумерованный список.') p.style='List Number' doc.save('test.docx') 

Document.add_picture(image_path_or_stream, width=None, height=None) :

Метод Document.add_picture() добавляет изображения в отдельный абзац в конце документа при этом возвращает ссылку на объект добавленного изображения Document.inline_shapes . Абзац будет содержать изображение в image_path_or_stream , масштабированное по ширине width и высоте height .

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

Собственный размер изображения рассчитывается с использованием значения точек на дюйм dpi , указанного в файле изображения. Если dpi в изображении отсутствует, как это часто бывает, то по умолчанию будет использоваться 72 dpi.

По своей сути, метод Document.add_picture() эквивалентен функции add_img() , которая определена в коде ниже:

from docx import Document from docx.shared import Mm def add_img(image_path, width=None, height=None): """Метод Document.add_picture()""" img = doc.add_paragraph().add_run().add_picture(image_path, width, height) return img doc = Document() add_img('/path/to/image.jpg', width=Mm(25)) doc.save('test.docx') 

Примеры добавления картинок в документ MS Word, а так же их извлечение, смотрите в материале «Добавление/извлечение изображений в документ .docx».

Document.add_section(start_type=2) :

Метод Document.add_section() добавляет новую секцию/раздел в конец документа. Необязательный аргумент start_type должен быть членом перечисления WD_SECTION_START и по умолчанию равен WD_SECTION.NEW_PAGE , если не указан.

Метод возвращает ссылку на объект добавленного раздела Section , который позволяет настраивать/изменять макет документа, включая колонтитулы.

Примеры использования метода Document.add_section() смотрите в материале «Изменение макета документа».

Document.add_table(rows, cols, style=None) :

Метод Document.add_table() добавляет таблицу, содержащую количество строк rows и столбцов col в строках и столбцах соответственно и стиль таблицы style . Возвращает объект Table .

Аргумент style может быть именем стиля абзаца. Если style=None , то таблица наследует стиль таблицы, определенный в документе по умолчанию.

Примеры использования метода Document.add_table() смотрите в материале «Добавление/изменение таблиц в документе .docx».

Document.core_properties :

Свойство Document.core_properties представляет собой объект CoreProperties , обеспечивающий доступ для чтения и записи к так называемым основным свойствам документа (автор, категория, комментарии, когда и кем создан, ключевые слова, язык, тема, заголовок и версия).

from docx import Document doc = Document() prop = doc.core_properties prop.title = 'Пример' prop.author = 'docs-python.ru' prop.comments = 'Сгенерирован модулем python-docx' doc.save('test.docx') 

Каждое свойство может быть одного из трех типов: str , datetime.datetime или int . Строковые свойства ограничены длиной до 255 символов и возвращают пустую строку » , если не заданы. Свойства даты назначаются и возвращаются как объекты datetime.datetime без часового пояса, то есть в формате UTC. За преобразование часового пояса отвечает клиент. Свойства даты возвращают значение None , если не задано.

Модуль python-docx не устанавливает автоматически какие-либо основные свойства документа. Если python-docx добавляет часть основных свойств, то они содержат значения по умолчанию для title , last_modified_by , revision . Клиентский код должен обновлять такие свойства, как revision и last_modified_by , если такое поведение желательно.

Основные свойства документа:
  • core_properties.author — тип str , автор документа;
  • core_properties.category — тип str , классификация содержимого. Примеры значений могут включать: Резюме, Письмо, Финансовый прогноз, Предложение или Техническая презентация;
  • core_properties.comments — тип str , комментарии к документу;
  • core_properties.content_status — тип str , статус завершения документа, например ‘черновик’;
  • core_properties.created — тип datetime.datetime , время первоначального создания документа;
  • core_properties.identifier — тип str , однозначная ссылка на ресурс в заданном контексте, например ISBN;
  • core_properties.keywords — тип str , описательные слова или короткие фразы, которые могут быть использованы в качестве поисковых запросов для этого документа;
  • core_properties.language — тип str , язык на котором составлен документа;
  • core_properties.last_modified_by — тип str , имя или другой идентификатор (например, адрес электронной почты) лица, последним изменившего документ;
  • core_properties.last_printed — тип datetime.datetime , время последней печати документа;
  • core_properties.modified — тип datetime.datetime , время последней модификации документа;
  • core_properties.revision — тип int , номер редакции, увеличиваемый на 1 при каждом сохранении документа. Обратите внимание, что модуль python-docx автоматически не увеличивает номер редакции при сохранении документа;
  • core_properties.subject — тип str , тема документа;
  • core_properties.title — тип str , название документа;
  • core_properties.version — тип str версии документа в произвольной форме;

Document.inline_shapes :

Свойство Document.inline_shapes представляет собой последовательность объектов InlineShape .

Объект InlineShape — это объект встроенной фигуры, содержащееся в текстовом слое документа и ведущий себя как глиф символа, переходящий как другой текст в абзаце. Другими словами, объекты InlineShape обрабатываются как символы и размещаются как символы в строке текста.

У встроенных фигур InlineShape нет имен. Встроенной фигурой может быть только изображение, объект OLE или элемент управления ActiveX.

Свойство Document.inline_shapes поддерживает функцию len() , итерацию и доступ к объектам по индексу.

Свойства изображения в документе .docx :
  • inline_shape.height — для чтения/записи, высота изображения (поддерживает еще .cm и .mm , например: height.mm );
  • inline_shape.width — для чтения/записи, высота изображения (поддерживает еще .cm и .mm , например: width.cm );
  • inline_shape.type — только для чтения, тип связанной фигуры доступен как перечисление WD_INLINE_SHAPE .

Тип связанной фигуры может быть:

  • WD_INLINE_SHAPE.LINKED_PICTURE ;
  • WD_INLINE_SHAPE.PICTURE ;
  • WD_INLINE_SHAPE.CHART ;
  • WD_INLINE_SHAPE.SMART_ART ;
  • WD_INLINE_SHAPE.NOT_IMPLEMENTED .

Получить сведения о всех встроенных фигур в документе можно в цикле:

from docx import Document # открываем существующий документ doc = Document('/path/to/example.docx') for i, fig in enumerate(doc.inline_shapes, start=1): print(f'\nИзображение №i>:') print(f'\t- Ширина и высота в мм: fig.width.mm>, fig.height.mm>;') print(f'\t- Тип изображения: fig.type>.') 

Document.paragraphs :

Атрибут Document.paragraphs представляет собой список объектов абзацев Paragraph , соответствующих абзацам в документе, в порядке их следования. Поддерживает функцию len() , итерацию и доступ к элементам по индексу.

В основном используется при чтении/изменении стиля абзацев существующего документа или извлечении текста.

Обратите внимание, что абзацы с пометками редакции, такими как или , не отображаются в этом списке.

>>> from docx import Document # открываем существующий документ >>> doc = Document('/path/to/example.docx') # количество абзацев в документе >>> len(doc.paragraphs) # текст первого абзаца в документе >>> doc.paragraphs[0].text # текст второго абзаца в документе >>> doc.paragraphs[1].text # текст первого прогона второго абзаца >>> doc.paragraphs[1].runs[0].text 

Для того, чтобы узнать, какие еще свойства и методы есть у абзаца/параграфа необходимо обратиться к справочной информации по объекту Paragraph .

Document.save(path_or_stream) :

Метод Document.save() сохраняет этот документ в path_or_stream , который может быть либо путем файловой системы (строка), либо файловым объектом.

Document.sections :

Свойство Document.sections представляет собой последовательность объектов раздела Section , соответствующих разделам в документе, в порядке их следования. Поддерживает функцию len() , итерацию и доступ к элементам по индексу. Используется при настройке макета вновь создаваемого и чтении/изменении существующего документа.

В несложных документах обычно присутствует только одна секция/раздел. В документах, где присутствуют разные ориентации страниц или применяются разные макеты страниц, для этих целей используются разные секции/разделы документа.

>>> from docx import Document # открываем существующий документ >>> doc = Document('/path/to/example.docx') # количество разделов документа >>> len(doc.sections) # сведения первого раздела >>> doc.sections[0].orientation >>> doc.sections[0].page_width.cm >>> doc.sections[0].page_height.cm 

Для того, чтобы узнать, какие еще параметры секции/раздела можно посмотреть/изменить/настроить необходимо обратиться к справочной информации по объекту Section .

Document.settings :

Свойство Document.settings представляет собой объект Settings , предоставляющий доступ к настройкам этого документа на уровне XML.

Document.styles :

Свойство Document.styles представляет собой объект Styles , обеспечивающий доступ к встроенным в пользовательский интерфейс MS Word стилям, которые в свою очередь можно перенастроить под себя. В модуле python-docx эти стили дублируются и постоянно обновляются.

Свойство поддерживает len() , итерацию и доступ в стиле словаря — по имени стиля, например Document.styles[‘Normal’] .

Методы и свойства объекта Styles .
Styles.add_style(name, style_type, builtin=False) :

Метод Styles.add_style возвращает недавно добавленный объект стиля для типа style_type который будет идентифицироваться по имени name . Тип стиля style_type задается перечислением WD_STYLE_TYPE .

Стиль, который будет встроен в пользовательский интерфейс MS Word, должен быть определен путем передачи True для необязательного аргумента builtin .

Как добавлять и использовать собственные объекты стилей, смотрите в материале «Работа с объектом Style модуля python-docx «.

Styles.default(style_type) :

Метод Styles.add_style() возвращает стиль по умолчанию для style_type или None , если для этого типа не определено значение по умолчанию.

Styles.element :

Свойство Styles.element представляет собой элемент lxml , проксируемый этим объектом.

Посмотреть все стили, встроенные в MS Word можно так:

>>> from docx import Document >>> doc = Document() # количество встроенных стилей >>> len(doc.styles) # 164 >>> for name in doc.styles: . print(name) # _ParagraphStyle('Normal') id: 139972403301584 # _ParagraphStyle('Header') id: 139972421518768 . 

Изменить настройку стиля текста документа по умолчанию можно как-то так:

from docx import Document from docx.shared import Pt doc = Document() # получаем доступ к стилю 'Normal' # (это стиль текста по умолчанию) style = doc.styles['Normal'] # меняем название шрифта style.font.name = 'Arial' # меняем размер шрифта style.font.size = Pt(12) . 
Document.tables :

Свойство Document.tables представляет собой список объектов таблиц Table , соответствующих таблицам в документе, в порядке следования их в документе. В основном используется при чтении/изменении стиля таблиц существующего документа или извлечении данных таблиц.

Обратите внимание, что в этом списке отображаются только таблицы, расположенные на верхнем уровне документа. Таблица, вложенная в ячейку таблицы, не отображается. Таблица с пометками ревизии, такими как или , также не будет отображаться в списке.

Примеры добавления/изменения таблиц в документе DOCX смотрите в материале «Работа с таблицей при помощи модуля python-docx «.

  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Изменение макета документа, модуль python-docx
  • Работа с текстом, модуль python-docx
  • Работа с таблицей при помощи модуля python-docx
  • Работа с объектом Style модуля docx-python
  • Работа с рисунками, модуль python-docx
  • Объект Document модуля python-docx
  • Объект Section() модуля python-docx
  • Объект Paragraph модуля python-docx
  • Объект Run модуля python-docx
  • Объект Table модуля python-docx
  • Объект Font модуля python-docx
  • Объект ParagraphFormat модуля python-docx, форматирование абзаца
  • Объект длинны Length модуля python-docx
  • Константы/перечисления модуля python-docx
  • Создание документов DOCX из шаблонов jinja2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *