【Python】操作word文档
#导入相关扩展包
import docx
from docx.enum.text import WD_ALIGN_PARAGRAPH#设置对齐格式
from docx.shared import Pt#设置字体大小
from docx.shared import Inches#设置缩进,图片大小等
from docx.oxml.ns import qn
#(1)写入word文件
#首先,创建一个Document对象,即word文档
doc = docx.Document()
#添加一段文字
p1 = doc.add_paragraph('新增一个段落')
#添加一段居中文字
p2 = doc.add_paragraph('添加一个居中段落')
p2.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER#设置居中,(LEFT:左对齐;CENTER:文字居中;RIGHT:右对齐;JUSTIFY:本两端对齐)
#接着添加加粗、给定字号、给定字体的文字
run1 = p2.add_run('加粗三号中文黑体')
run1.bold=True#设置加粗
run1.font.size=Pt(16)#设置字体大小,16对应三号字体
run1.font.name='黑体'#仅设置此参数时,文字为西文字体
run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体') #设置中文字体,和run.font.name一起使用
#添加一段右对齐文字
p3 = doc.add_paragraph()
p3.paragraph_format.alignment=docx.enum.text.WD_ALIGN_PARAGRAPH.RIGHT
run2 = p3.add_run('右对齐西文宋体')
run2.font.name = '宋体'#设置西文字体
#左对齐首行缩进文字
p4 = doc.add_paragraph('左对齐首行缩进')
p4.paragraph_format.alignment=docx.enum.text.WD_ALIGN_PARAGRAPH.LEFT#设置左对齐
p4.paragraph_format.first_line_indent=Inches(0.5)#设置首行缩进(默认Inches(0.5)等于四个空格)
run4 = p4.add_run('----接着中文宋体小四号')
run4.font.name='宋体'
run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #设置中文字体
run4.font.size=Pt(12)#设置字体大小
#插入图片,并设置宽度和高度
doc.add_picture(r"figure1.png", width=Inches(6.0), height=Inches(2.6))
#默认情况下,图片在文档中是左对齐的,如果要对图片进行居中显示,直接加入以下代码
last_paragraph = doc.paragraphs[-1]
last_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
#换页,分页
doc.add_page_break()#分页,无论本页是否满,去下一页操作
p5 = doc.add_paragraph('这是第二页,在这插入一个表格')
p5.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
#插入表格(表格的style有很多种,默认情况下表格是没有边框的,Table Grid格式是普通的黑色边框表格(https://www.cnblogs.com/xtfge/p/9949053.html))
table = doc.add_table(rows=3,cols=2,style="Table Grid")#添加3行2列的表格
#设置表格第1列宽度为Inches(2) 默认情况下表格是自动适应文档宽度
col = table.columns[0]
col.width = Inches(2)
heading_cells = table.rows[0].cells #将表格的第一行设置为表头
Arr = ['表头','加粗']
for i in range(2): #cols=2为表格的列数
p = heading_cells[i].paragraphs[0] #利用段落功能添加文字
run = p.add_run(Arr[i]) #把表头放在一个数组里面的,这样方便赋值
#设置加粗
run.bold=True
#设置中文字体
run.font.name='黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER #居中设置,默认是左对齐
table.cell(2,1).text = u'第三行第二列'#在表格的i行j列设置文字,默认文字在表格中是左对齐
table.add_row() #添加表格行
table.cell(3,0).text = u"新增的一行"
#保存上面建立的word文件到本地
doc.save(r"test.docx")