Skip to content

Instantly share code, notes, and snippets.

@fabianogoes
Last active May 5, 2022 14:22
Show Gist options
  • Save fabianogoes/b2841e6725ab18745bb28d4650c7ee35 to your computer and use it in GitHub Desktop.
Save fabianogoes/b2841e6725ab18745bb28d4650c7ee35 to your computer and use it in GitHub Desktop.
Example write word(docx) by Python
#!python3
"""
requirements:
document==1.0
lxml==4.2.4
Pillow==5.2.0
python-docx==0.8.7
Reference: https://python-docx.readthedocs.io/en/latest/index.html
"""
from docx import Document
from docx.shared import Inches
document = Document()
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='Intense Quote')
document.add_paragraph(
'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
'first item in ordered list', style='List Number'
)
# document.add_picture('monty-truth.png', width=Inches(1.25))
records = (
(3, '101', 'Spam'),
(7, '422', 'Eggs'),
(4, '631', 'Spam, spam, eggs, and spam')
)
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 qty, id, desc in records:
row_cells = table.add_row().cells
row_cells[0].text = str(qty)
row_cells[1].text = id
row_cells[2].text = desc
document.add_page_break()
document.save('test.docx')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment