Как убрать границы таблицы в ворде python
Table objects are constructed using the add_table() method on Document .
Table objects¶
Proxy class for a WordprocessingML element.
Return a _Column object of width, newly added rightmost to the table.
Return a _Row instance, newly added bottom-most to the table.
Read/write. A member of WD_TABLE_ALIGNMENT or None, specifying the positioning of this table between the page margins. None if no setting is specified, causing the effective value to be inherited from the style hierarchy.
True if column widths can be automatically adjusted to improve the fit of cell contents. False if table layout is fixed. Column widths are adjusted in either case if total column width exceeds page width. Read/write boolean.
Return _Cell instance correponding to table cell at row_idx, col_idx intersection, where (0, 0) is the top, left-most cell.
Sequence of cells in the column at column_idx in this table.
_Columns instance representing the sequence of columns in this table.
Sequence of cells in the row at row_idx in this table.
_Rows instance containing the sequence of rows in this table.
Read/write. A _TableStyle object representing the style applied to this table. The default table style for the document (often Normal Table ) is returned if the table has no directly-applied style. Assigning None to this property removes any directly-applied table style causing it to inherit the default table style of the document. Note that the style name of a table style differs slightly from that displayed in the user interface; a hyphen, if it appears, must be removed. For example, Light Shading - Accent 1 becomes Light Shading Accent 1 .
A member of WD_TABLE_DIRECTION indicating the direction in which the table cells are ordered, e.g. WD_TABLE_DIRECTION.LTR . None indicates the value is inherited from the style hierarchy.
_Cell objects¶
Return a paragraph newly added to the end of the content in this cell. If present, text is added to the paragraph in a single run. If specified, the paragraph style style is applied. If style is not specified or is None , the result is as though the ‘Normal’ style was applied. Note that the formatting of text in a cell can be influenced by the table style. text can contain tab ( \t ) characters, which are converted to the appropriate XML form for a tab. text can also include newline ( \n ) or carriage return ( \r ) characters, each of which is converted to a line break.
Return a table newly added to this cell after any existing cell content, having rows rows and cols columns. An empty paragraph is added after the table because Word requires a paragraph element as the last element in every cell.
Return a merged cell created by spanning the rectangular region having this cell and other_cell as diagonal corners. Raises InvalidSpanError if the cells do not define a rectangular region.
List of paragraphs in the cell. A table cell is required to contain at least one block-level element and end with a paragraph. By default, a new cell contains a single paragraph. Read-only
List of tables in the cell, in the order they appear. Read-only.
The entire contents of this cell as a string of text. Assigning a string to this property replaces all existing content with a single paragraph containing the assigned text in a single run.
A value of None indicates vertical alignment for this cell is inherited. Assigning None causes any explicitly defined vertical alignment to be removed, restoring inheritance.
The width of this cell in EMU, or None if no explicit width is set.
_Row objects¶
Sequence of _Cell instances corresponding to cells in this row.
Return a Length object representing the height of this cell, or None if no explicit height is set.
Return the height rule of this cell as a member of the WD_ROW_HEIGHT_RULE enumeration, or None if no explicit height_rule is set.
Reference to the Table object this row belongs to.
_Column objects¶
Sequence of _Cell instances corresponding to cells in this column.
Reference to the Table object this column belongs to.
The width of this column in EMU, or None if no explicit width is set.
_Rows objects¶
Sequence of _Row objects corresponding to the rows in a table. Supports len() , iteration, indexed access, and slicing.
Reference to the Table object this row collection belongs to.
_Columns objects¶
Sequence of _Column instances corresponding to the columns in a table. Supports len() , iteration and indexed access.
В разделе рассмотрены варианты выравнивание столбцов и изменение внешнего вида полученной таблицы PrettyTable .
Создадим таблицу с которой будем работать:
Выравнивание столбцов таблицы PrettyTable .
По умолчанию модуль prettytable выравнивает все столбцы в таблице по центру.
Модуль позволяет изменить выравнивание всех столбцов в таблице сразу, назначив односимвольную строку для атрибута PrettyTable.align . Допустимые строки: 'l' , 'r' и 'c' для выравнивания влево, вправо и по центру соответственно:
Также можно изменить выравнивание отдельных столбцов на основе соответствующего имени поля, рассматривая атрибут PrettyTable.align , как если бы он был словарем.
Встроенные стили отображения таблицы.
Можно устанавливать стиль для таблицы с помощью метода PrettyTable.set_style() перед любыми вызовами print() или PrettyTable.get_string() . Вот как напечатать таблицу в формате, который хорошо работает с функцией Microsoft Word "Преобразовать в таблицу":
В дополнение к встроенному стилю MSWORD_FRIENDLY в настоящее время есть два других встроенных стиля, которые можно использовать для своих таблиц:
- DEFAULT - внешний вид по умолчанию, используемый для отмены любых изменений стиля, которые внесены.
- PLAIN_COLUMNS - стиль без полей, который хорошо работает с программами командной строки для столбчатых данных.
- MARKDOWN - стиль, соответствующий синтаксису Markdown .
- ORGMODE - стиль таблицы, соответствующий синтаксису режима организации.
Создание пользовательского стиля отображения таблицы.
Модуль prettytable имеет несколько параметров стиля, которые управляют различными аспектами отображения таблиц. У пользователя есть свобода установить каждый из этих параметров индивидуально в соответствии с предпочтениями. Метод PrettyTable.set_style() просто делает это автоматически.
Параметры для управления стилями:
- border - логический параметр (должен быть True или False). Определяет, будет ли вокруг стола нарисована граница.
- header - логический параметр (должен быть True или False). Определяет, является ли первая строка таблицы заголовком, отображающим имена всех полей.
- hrules - Управляет печатью горизонтальных линий после строк. Допустимые значения: FRAME , HEADER , ALL , NONE .Обратите внимание, что это переменные, определенные внутри модуля prettytable , поэтому обязательно импортируйте их или используйте prettytable.FRAME и т. д.
- vrules - Управляет печатью вертикальных линий между столбцами. Допустимые значения: FRAME , ALL , NONE .
- int_format - строка, которая контролирует способ печати целочисленных данных. Это работает так: print('% int_format d' % data)
- float_format - строка, которая контролирует способ печати данных с плавающей запятой. Это работает так: print('% float_format f' % data)
- padding_width - количество пробелов по обе стороны от данных столбца (используется, только если левое и правое отступы равны None ).
- left_padding_width - количество пробелов слева от данных столбца.
- right_padding_width - количество пробелов справа от данных столбца.
- vertical_char - односимвольная строка, используемая для рисования вертикальных линий. По умолчанию '|' .
- horizontal_char - односимвольная строка, используемая для рисования горизонтальных линий. По умолчанию '-' .
- junction_char - односимвольная строка, используемая для рисования стыков линий. По умолчанию '+' .
Примеры работы с параметрами стилей.
Если необходимо напечатать таблицу с другим стилем несколько раз, то можно установить свой вариант на длительный срок, просто изменив соответствующие атрибуты экземпляра класса PrettyTable :
Что-бы снова включить отображение нужного стиля, присвойте соответствующему атрибуту значение True , например mytable.border = True
Обратите внимание: если вы знаете, какие параметры стиля нужны в момент создания таблицы, то можно указать их, используя ключевые аргументы для конструктора. Например, следующие два блока кода эквивалентны:
Изменение параметров стиля только один раз.
Если нет необходимости вносить долгосрочные изменения в стиль, изменяя атрибут, как в примере выше, то можно внести изменения, которые изменятся только для метода PrettyTable.get_string() , указав ключевые аргументы этого метода. Чтобы напечатать две "нормальные" таблицы и одну без полей между ними, можно сделать следующее:
Объект Table модуля python-docx представляет собой прокси-объект, который оборачивает элемент WordprocessingML .
Объект Table не создается вручную, а возвращается в результате вызова метода Document.add_table() .
Пример добавления таблицы в документ :
Свойства и методы объекта 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 указывает, что значение наследуется от иерархии стилей.
Свойства и методы объекта ячейки таблицы 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 предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml .
Установка модуля python-docx в виртуальное окружение.
Модуль python-docx размещен на PyPI, поэтому установка относительно проста.
Основы работы с файлами Microsoft Word на Python.
Открытие/создание документа.
Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ:
При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.
При этом шрифт документа и его размер по умолчанию для всего документа можно задать следующим образом:
Так же, можно открывать существующий документ Word и работать с ним при помощи модуля python-docx . Для этого, в конструктор класса Document() необходимо передать путь к существующему документу Microsoft Word.
Добавление заголовка документа.
В любом документе, основной текст делится на разделы, каждый из которых начинается с заголовка. Название таких разделов можно добавить методом Document.add_heading() :
По умолчанию, добавляется заголовок верхнего уровня, который отображается в Word как "Heading 1". Если нужен заголовок для подраздела, то просто указываем желаемый уровень в виде целого числа от 1 до 9:
Если указать level=0 , то будет добавлен текст с встроенным стилем титульной страницы. Такой стиль может быть полезен для заголовка относительно короткого документа без отдельной титульной страницы.
Так же, заголовки разделов можно добавлять методом document.add_paragraph().add_run() , с указанным размером шрифта.
Добавление абзаца.
Абзацы в Word имеют основополагающее значение. Они используются для добавления колонтитулов, основного текста, заголовков, элементов списков, картинок и т.д.
Смотрим самый простой способ добавить абзац/параграф:
Метод Document.add_paragraph() возвращает ссылку на только что добавленный абзац (объект Paragraph ). Абзац добавляется в конец документа. Эту ссылку можно использовать в качестве своеобразного "курсора" и например, вставить новый абзац прямо над ним:
Такое поведение позволяет вставить абзац в середину документа, это важно при изменении существующего документа, а не при его создании с нуля.
Ссылка на абзац, так же используется для его форматирования встроенными в MS Word стилями или для кастомного/пользовательского форматирования.
Пользовательское форматирование абзаца.
Форматирование абзацев происходит при помощи объекта ParagraphFormat .
Простой способ форматировать абзац/параграф:
Чтобы узнать, какие параметры абзаца еще можно настроить/изменить, смотрите материал "Объект ParagraphFormat "
Очень часто в коде, с возвращенной ссылкой (в данном случае p ) ничего делать не надо, следовательно нет смысла ее присваивать переменной.
Применение встроенного стиля в Microsoft Word к абзацу.
Стиль абзаца - это набор правил форматирования, который заранее определен в Microsoft Word, и храниться в редакторе в качестве переменной. По сути, стиль позволяет сразу применить к абзацу целый набор параметров форматирования.
Можно применить стиль абзаца, прямо при его создании:
В конкретном стиле 'List Bullet' , абзац отображается в виде маркера. Также можно применить стиль позже. Две строки, в коде ниже, эквивалентны примеру выше:
Стиль указывается с использованием его имени, в этом примере имя стиля - 'List' . Как правило, имя стиля точно такое, как оно отображается в пользовательском интерфейсе Word.
Обратите внимание, что можно установить встроенный стиль прямо на результат document.add_paragraph() , без использования возвращаемого объекта paragraph
Жирный, курсив и подчеркнутый текст в абзаце.
Разберемся, что происходит внутри абзаца:
- Абзац содержит все форматирование на уровне блока, такое как - отступ, высота строки, табуляции и так далее.
- Форматирование на уровне символов, например полужирный и курсив, применяется на уровне прогона paragraph.add_run() . Все содержимое абзаца должно находиться в пределах цикла, но их может быть больше одного. Таким образом, для абзаца с полужирным словом посередине требуется три прогона: обычный, полужирный - содержащий слово, и еще один нормальный для текста после него.
Когда создается абзац методом Document.add_paragraph() , то передаваемый текст добавляется за один прогон Run . Пустой абзац/параграф можно создать, вызвав этот метод без аргументов. В этом случае, наполнить абзац текстом можно с помощью метода Paragraph.add_run() . Метод абзаца .add_run() можно вызывать несколько раз, тем самым добавляя информацию в конец данного абзаца:
В результате получается абзац, который выглядит так же, как абзац, созданный из одной строки. Если не смотреть на полученный XML, то не очевидно, где текст абзаца разбивается на части. Обратите внимание на конечный пробел в конце первой строки. Необходимо четко указывать, где появляются пробелы в начале и в конце прогона, иначе текст будет слитный (без пробелов). Они (пробелы) автоматически не вставляются между прогонами paragraph.add_run() . Метод paragraph.add_run() возвращает ссылку на объект прогона Run , которую можно использовать, если она нужна.
Объекты прогонов имеют следующие свойства, которые позволяют установить соответствующий стиль:
- .bold : полужирный текст;
- .underline : подчеркнутый текст;
- .italic : курсивный (наклонный) текст;
- .strike : зачеркнутый текст.
Получится текст, что то вроде этого: "Абзац содержит форматирование на уровне блока".
Обратите внимание, что можно установить полужирный или курсив прямо на результат paragraph.add_run() , без использования возвращаемого объекта прогона:
Передавать текст в метод Document.add_paragraph() не обязательно. Это может упростить код, если строить абзац из прогонов:
Пользовательское задание шрифта прогона.
Применение стилей Microsoft Word к символам текста (к прогону).
В дополнение к встроенным стилям абзаца, которые определяют группу параметров уровня абзаца, Microsoft Word имеет стили символов, которые определяют группу параметров уровня прогона paragraph.add_run() . Другими словами, можно думать о стиле текста как об указании шрифта, включая его имя, размер, цвет, полужирный, курсив и т. д.
Подобно стилям абзацев, стиль символов текста будет определен в документе, который открывается с помощью вызова Document() (см. Общие сведения о стилях).
Стиль символов можно указать при добавлении нового прогона:
Также можете применить стиль к прогону после его добавления. Этот код дает тот же результат, что и строки выше:
Как и в случае со стилем абзаца, имя стиля текста такое, как оно отображается в пользовательском интерфейсе Word.
Пользовательский стиль символов текста.
Добавление разрыва страницы.
При создании документа, время от времени нужно, чтобы следующий текст выводился на отдельной странице, даже если последняя не заполнена. Жесткий разрыв страницы можно сделать следующим образом:
Если вы обнаружите, что используете это очень часто, это, вероятно, знак того, что вы могли бы извлечь выгоду, лучше разбираясь в стилях абзацев. Одно свойство стиля абзаца, которое вы можете установить, - это разрыв страницы непосредственно перед каждым абзацем, имеющим этот стиль. Таким образом, вы можете установить заголовки определенного уровня, чтобы всегда начинать новую страницу. Подробнее о стилях позже. Они оказываются критически важными для получения максимальной отдачи от Word.
Жесткий разрыв страницы можно привязать к стилю абзаца, и затем применять его для определенных абзацев, которые должны начинаться с новой страницы. Так же можно установить жесткий разрыв на стиль заголовка определенного уровня, чтобы с него всегда начинать новую страницу. В общем, стили, оказываются критически важными для того, чтобы получить максимальную отдачу от модуля python-docx .
Добавление картинки в документ.
Microsoft Word позволяет разместить изображение в документе с помощью пункта меню "Вставить изображение". Вот как это сделать при помощи модуля python-docx :
В этом примере используется путь, по которому файл изображения загружается из локальной файловой системы. В качестве пути можно использовать файловый объект, по сути, любой объект, который действует как открытый файл. Такое поведение может быть полезно, если изображение извлекается из базы данных или передается по сети.
Размер изображения.
По умолчанию, изображение добавляется с исходными размерами, что часто не устраивает пользователя. Собственный размер рассчитывается как px/dpi . Таким образом, изображение размером 300x300 пикселей с разрешением 300 точек на дюйм появляется в квадрате размером один дюйм. Проблема в том, что большинство изображений не содержат свойства dpi , и по умолчанию оно равно 72 dpi. Следовательно, то же изображение будет иметь одну сторону, размером 4,167 дюйма, что означает половину страницы.
Чтобы получить изображение нужного размера, необходимо указывать его ширину или высоту в удобных единицах измерения, например, в миллиметрах или сантиметрах:
Если указать только одну из сторон, то модуль python-docx использует его для вычисления правильно масштабированного значения другой стороны изображения. Таким образом сохраняется соотношение сторон и изображение не выглядит растянутым.
Классы Mm() и Cm() предназначены для того, чтобы можно было указывать размеры в удобных единицах. Внутри python-docx используются английские метрические единицы, 914400 дюймов. Так что, если просто указать размер, что-то вроде width=2 , то получится очень маленькое изображение. Классы Mm() и Cm() импортируются из подпакета docx.shared . Эти классы можно использовать в арифметике, как если бы они были целыми числами. Так что выражение, width=Mm(38)/thing_count, работает нормально.
Чтение документов Microsoft Word.
В модуле python-docx , структура документа Microsoft Word представлена тремя различными типами данных. На самом верхнем уровне объект Document() представляет собой весь документ. Объект Document() содержит список объектов Paragraph() , которые представляют собой абзацы документа. Каждый из абзацев содержит список, состоящий из одного или нескольких объектов Run() , представляющих собой фрагменты текста с различными стилями форматирования.
При установке модуля надо вводить python-docx , а не docx (это другой модуль). В то же время при импортировании модуля python-docx следует использовать import docx , а не import python-docx .
Чтение документов MS Word
Файлы с расширением .docx обладают развитой внутренней структурой. В модуле python-docx эта структура представлена тремя различными типами данных. На самом верхнем уровне объект Document представляет собой весь документ. Объект Document содержит список объектов Paragraph , которые представляют собой абзацы документа. Каждый из абзацев содержит список, состоящий из одного или нескольких объектов Run , представляющих собой фрагменты текста с различными стилями форматирования.
Получаем весь текст из документа:
Стилевое оформление
В документах MS Word применяются два типа стилей: стили абзацев, которые могут применяться к объектам Paragraph , стили символов, которые могут применяться к объектам Run . Как объектам Paragraph , так и объектам Run можно назначать стили, присваивая их атрибутам style значение в виде строки. Этой строкой должно быть имя стиля. Если для стиля задано значение None , то у объекта Paragraph или Run не будет связанного с ним стиля.
Стили абзацев
- Normal
- Body Text
- Body Text 2
- Body Text 3
- Caption
- Heading 1
- Heading 2
- Heading 3
- Heading 4
- Heading 5
- Heading 6
- Heading 7
- Heading 8
- Heading 9
- Intense Quote
- List
- List 2
- List 3
- List Bullet
- List Bullet 2
- List Bullet 3
- List Continue
- List Continue 2
- List Continue 3
- List Number
- List Number 2
- List Number 3
- List Paragraph
- Macro Text
- No Spacing
- Quote
- Subtitle
- TOCHeading
- Title
Стили символов
- Emphasis
- Strong
- Book Title
- Default Paragraph Font
- Intense Emphasis
- Subtle Emphasis
- Intense Reference
- Subtle Reference
Атрибуты объекта Run
Отдельные фрагменты текста, представленные объектами Run , могут подвергаться дополнительному форматированию с помощью атрибутов. Для каждого из этих атрибутов может быть задано одно из трех значений: True (атрибут активизирован), False (атрибут отключен) и None (применяется стиль, установленный для данного объекта Run ).
- bold — Полужирное начертание
- underline — Подчеркнутый текст
- italic — Курсивное начертание
- strike — Зачеркнутый текст
Изменим стили для всех параграфов нашего документа:
А теперь восстановим все как было:
Изменим форматирвание объектов Run второго абзаца:
Запись докуменов MS Word
Добавление абзацев осуществляется вызовом метода add_paragraph() объекта Document . Для добавления текста в конец существующего абзаца, надо вызвать метод add_run() объекта Paragraph :
Оба метода, add_paragraph() и add_run() принимают необязательный второй аргумент, содержащий строку стиля, например:
Добавление заголовков
Вызов метода add_heading() приводит к добавлению абзаца, отформатированного в соответствии с одним из возможных стилей заголовков:
Аргументами метода add_heading() являются строка текста и целое число от 0 до 4. Значению 0 соответствует стиль заголовка Title .
Добавление разрывов строк и страниц
Чтобы добавить разрыв строки (а не добавлять новый абзац), нужно вызвать метод add_break() объекта Run . Если же требуется добавить разрыв страницы, то методу add_break() надо передать значение docx.enum.text.WD_BREAK.PAGE в качестве единственного аргумента:
Добавление изображений
Метод add_picture() объекта Document позволяет добавлять изображения в конце документа. Например, добавим в конец документа изображение kitten.jpg шириной 10 сантиметров:
Именованные аргументы width и height задают ширину и высоту изображения. Если их опустить, то значения этих аргументов будут определяться размерами самого изображения.
Читайте также: