python-docx
python-docx是python用于编辑生成word文档的一个库
Python DocX目前是Python OpenXML的一部分,你可以用它打开Word 2007及以后的文档。
详细文档请见:https://python-docx.readthedocs.org/en/latest/
创建一个word文档
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')
生成的文档如下图:
需要注意的就是样式(Style),样式在word中存储在一个单独的xml文件中,当然这个xml文件是包含在word之中的,其实是看不到的。
对于样式可以在代码之中定义,但是最好的方式还是用word在模板之中创建好,并且命名,之后直接再代码之中使用。
如:
document.add_paragraph(‘Intense quote’, style=’UserDefined_Style’)
这个就是增加自定义的样式
说明:python-docx暂时还不支持列表样式。