【原创】python_docx制作word文档实例demo

摘要: 实习工作中,遇到用python制作word模板的任务,其实说白了就是python-docx的使用。目前网上对这一个库的介绍得很少,很零散,所以很多功能我是尽量参考其官网,但是官网上面很多功能目前只有说明文档,而代码并还没有及时更新,以至于按照官网上面做了,python却报错。比如:自定义表格的高度。下面,我对我在此次工作任务中,所遇到的一些基本的功能分别做一下说明与展示。我用的是python2.7

实习工作中,遇到用python制作word模板的任务,其实说白了就是python-docx的使用。目前网上对这一个库的介绍得很少,很零散,所以很多功能我是尽量参考其官网,但是官网上面很多功能目前只有说明文档,而代码并还没有及时更新,以至于按照官网上面做了,python却报错。比如:自定义表格的高度。下面,我对我在此次工作任务中,所遇到的一些基本的功能分别做一下说明与展示。我用的是python2.7

# -*- coding:utf-8 -*-
from docx import Document
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
from docx.shared import RGBColor
from docx.shared import Pt
from docx.shared import Inches
# from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT




document = Document()
document.add_heading('This is my title', 0)
document.add_paragraph('my paragraph')

paragraph = document.add_paragraph()


document.styles['Normal'].font.name = u'黑体'
p = document.add_paragraph()
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
run = p.add_run(u'我添加的段落文字 ')
run.font.color.rgb = RGBColor(54, 95, 145)
run.font.size = Pt(36)

# pic = document.add_picture('logo1.PNG')
# last_paragraph = document.paragraphs[-1]
# last_paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 图片居中设置

rows = 2
cols = 3
table = document.add_table(rows=rows, cols=cols, style="Table Grid")  # 添加2行3列的表格

for i in range(rows):
    tr = table.rows[i]._tr
    trPr = tr.get_or_add_trPr()
    trHeight = OxmlElement('w:trHeight')
    trHeight.set(qn('w:val'), "450")
    trPr.append(trHeight)  # 表格高度设置
# table.autofit = False
col = table.columns[1]
col.width = Inches(5)
arr = [u'序号', u"类型", u"详细描述"]
heading_cells = table.rows[0].cells
for i in range(cols):
    p = heading_cells[i].paragraphs[0]
    run = p.add_run(arr[i])
    run.font.color.rgb = RGBColor(54, 95, 145)  # 颜色设置,这里是用RGB颜色
    run.font.size = Pt(12)  # 字体大小设置,和word里面的字号相对应
    p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
table.cell(1, 1).text = u'表格文字'
table.add_row()
document.save('test1.docx')

顶部一行是防止中文乱码,还有要注意的是引用包,from docx.enum.text import WD_ALIGN_PARAGRAPH 网上大多数是这个,放进去运行的时候会报错,然后就换了个引用方式 ,

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

,也可以用,不报错。

1572337295212469.png


网友留言评论

0条评论