您当前的位置:首页 > 计算机 > 编程开发 > Python

【Python】操作word文档

时间:04-13来源:作者:点击数:

【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")
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门