python:办公自动化之:WORD

pip install python-docx

相同样式的文字是一个run


提取文字:

from docx import  Document
doc=Document('这是一个文档.docx')
print(doc.paragraphs)
for para in doc.paragraphs:
    print(para.text)
    for run in para.runs:
        print(run.text)
    print('*'*20)


利用Python向Word文档写入

from docx import  Document
from docx.shared import Cm
#用于导入以后调整图片大小的类

doc=Document('这是一个文档.docx')
#读取文档内容
'''
print(doc.paragraphs)
for para in doc.paragraphs:
    print(para.text)
    for run in para.runs:
        print(run.text)
    print('*'*20)
'''
#写入文档内容
doc.add_heading('一级标题')
#以上语句踩坑,如果出现KeyError: "no style with name 'Heading 1'"的解决
#简单办法是:打开这个.docx文件,新建一个类似的样式,如一级标题,保存文件,然后删除这个样式,
# 再保存文件。这样做的目的是让.docx文件记住默认的样式。

para1=doc.add_paragraph('这又是一个段落')
para2=doc.add_paragraph('zhe youshi yige duanluo ')

para3=doc.add_paragraph()
para3.add_run('加粗').bold=True
para3.add_run('普通')
para3.add_run('斜体').italic=True

#添加分页
doc.add_page_break()


#添加图片
doc.add_picture('每颗豆.png',width=Cm(5),height=Cm(5))

#添加表格
table=doc.add_table(rows=4,cols=3)
records=[
    ['学号','姓名','成绩'],
    ['101','zhangsan',95],
    ['102','李四',100],
    ['103','ww',93]
]

for row in range(4):
    cells=table.rows[row].cells
    for col in range(3):
        cells[col].text=str(records[row][col])

doc.save('这是一个文档.docx')


样式修改:

from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT


doc=Document('word样式.docx')
doc.add_paragraph('这是一个新段')
doc.paragraphs[-1].add_run('又是一块文字')
doc.save('word样式.docx')

#doc=Document('word样式.docx')

for para in doc.paragraphs:
    #段落样式修改
    para.alignment=WD_PARAGRAPH_ALIGNMENT.LEFT
    #修改行间距
    para.paragraph_format.line_spacing=3.0
    para.paragraph_format.space_before=Pt(12)
    para.paragraph_format.space_after=Pt(12)
    # 文字样式
    for run in para.runs:
        run.font.bold=True
        run.font.italic=True
        run.font.underline=True
        run.font.strike=True
        run.font.shadow=True
        run.font.size=Pt(20)
        run.font.color.rgb=RGBColor(255,0,0)
        #加中文字体,一定要按一下步骤进行,有待于python升级
        run.font.name='仿宋'
        r=run._element.rPr.rFonts
        r.set(qn('w:eastAsia'),'仿宋')

doc.save('word样式.docx')

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值