docx - инструмент для работы с docx форматом

Document

class docx.api.Document([str path])

создает пустой документ или открывает существующий

inline_shapes

возвращает экземпляры docx.InlineShape документа

paragraphs

возвращает список параграфов документа Paragraph

sections

возвращает список секции документа Sections

tables

возвращает список таблиц документа Table

add_heading(str text[, int level=0...9])

добавляет заголовок и возвращает его экземпляр

add_bage_break()

добавляет новый лист в документ

add_paragraph(str text[, str style])

добавляет новый параграф в документ и возвращает его экземпляр Paragraph

add_picture(str path[, width][, height])

добавляет картинку в документ и возвращает его экземпляр

add_section([start_type])

добавляет новцую секцию в документ и возвращает его экземпляр Section WD_SECTION.ODD_PAGE

add_table(int rows, int cols[, str style])

добавляет новую таблицу в документ и возвращает его экземпляр Table

save(str path)

сохраняет документ в файл

Section

class docx.section.Section(sectPr)

объект секция

bottom_margin

отступ сверху

footer_distance()
gutter()
header_distance()
left_margin

отступ слева

orientation

ориентация секции, WD_ORIENTATION

page_height

высота сецкии

page_width

ширина сецкии

right_margin

отступ слева

start_type

тип разделителя секции (NEW_PAGE(2), EVEN_PAGE (3), ODD_PAGE (4))

top_margin

отступ сверху

Sections

class docx.parts.document.Sections(document)

секции документа

Table

class docx.table.Table

таблица в документе

autofit

автовыравнивание ширины столбца по содержимому

columns

список колонок таблицы Columns

rows

список строк _Row таблицы

style

стиль для таблицы

add_column()

добавляет колонку в таблицу, возвращает _Column

add_row()

добавляет строку в таблицу, возвращает _Row

cell(int row, int coll)

возвращает объект ячейки _Cell

_Cell

class docx.table._Cell(tc, parent)

объект ячейки таблицы документа

paragraphs

список параграфов Paragraph ячейки

tables

список таблиц Table ячейки

text

значение ячейки

width

ширина ячейки

add_paragraph(str text[, str style])

добавляет новый параграф в ячейку таблицы и возвращает экземпляр Paragraph

add_table(int rows, int cols)

добавляет таблицу в ячейку таблицы и возвращает экземпляр Table

_Row

class docx.table._Row(tr, parent)

объект строка таблицы

cells

список ячеек строки _Cell

_Rows

class docx.table._Rows(tr, parent)

список строк таблицы

_Column

class docx.table._Column(col, tbl, parent)

объект колонка таблицы

cells

список ячеек колонки _Cell

width

ширина колонки

Columns

class docx.table._Columns(tbl, parent)

список колонок таблицы

Paragraph

class docx.text.Paragraph(p, parent)

параграф

alignment

выранивание параграфа, WD_PARAGRAPH_ALIGNMENT

runs

список Run объектов

style

стиль параграфа

text

содержимое параграфа

add_run(str text[, str style])

добавляет в параграф, возвращает экземпляр текста Text

clear()

очищает параграф

insert_paragraph_before(str text[, str style])

возваращает новы параграф, вставленный перед текущим текстом

Run

class docx.text.Run(r, parent)

объект …

all_caps
bold

жирность текста

complex_script

жирность текста

cs_bold
cs_italic
double_strike
emboss
hidden
imprint
italic
math
no_proof
outline
rtl
shadow
small_caps
snap_to_grid
spec_vanish
strike
style
text
underline
web_hidden
add_break([int break_type=6])

добавляет перевод строки WD_BREAK.LINE, WD_BREAK.PAGE, and WD_BREAK.COLUMN

add_picture(str path[, width][, height])

добавляет картинку в и возвращает экземпляр InlineShape

add_tab()
add_text(str text)

добавляет текст и возвращает Text

clear()

очищает

class docx.Text

текст

bold

текст жирный

style

стиль текста

InlineShape

class docx.shape.InlineShape(inline)
height
type

WD_INLINE_SHAPE

width

InlineShapes

class docx.parts.document.InlineShapes(body_elem, parent)
add_picture(str path, run)

Length

class docx.shared.Length
cm
wmu
inches
mm
twips

Inches

class docx.shared.Inches

Cm

class docx.shared.Cm

Mm

class docx.shared.Mm

Emu

class docx.shared.Emu

WD_ALIGN_PARAGRAPH

docx.enum.text.WD_ALIGN_PARAGRAPH
LEFT
docx.CENTER
docx.RIGHT
docx.JUSTIFY
docx.DISTRIBUTE
docx.JUSTIFY_MED
docx.JUSTIFY_HI
docx.JUSTIFY_LOW
docx.THAI_JUSTIFY

WD_ORIENTATION

docx.enum.section.WD_ORIENTATION
PORTRAIT
docx.LANDSCAPE

WD_SECTION_START

docx.enum.section.WD_SECTION_START
CONTINUOUS
docx.NEW_COLUMN
docx.NEW_PAGE
docx.EVEN_PAGE
docx.ODD_PAGE

WD_UNDERLINE

docx.WD_UNDERLINE
docx.NONE
docx.SINGLE
docx.WORDS
docx.DOUBLE
docx.DOTTED
docx.THICK
docx.DASH
docx.DOT_DASH
docx.DOT_DOT_DASH
docx.WAVY
docx.DOTTED_HEAVY
docx.DASH_HEAVY
docx.DOT_DASH_HEAVY
docx.DOT_DOT_DASH_HEAVY
docx.WAVY_HEAVY
docx.DASH_LONG
docx.WAVY_DOUBLE
docx.DASH_LONG_HEAVY
from docx import Document
from docx.shared import Inches

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')

document.add_paragraph(
    'first item in unordered list', style='ListBullet'
)
document.add_paragraph(
    'first item in ordered list', style='ListNumber'
)

document.add_picture('monty-truth.png', width=Inches(1.25))

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
    row_cells = table.add_row().cells
    row_cells[0].text = str(item.qty)
    row_cells[1].text = str(item.id)
    row_cells[2].text = item.desc

document.add_page_break()

document.save('demo.docx')