时隔良久,这不小Mi的python办公系列又更新啦!这次咱们学习如何用python解决word文件!

  1. 装置库
    说实话,库的装置其实相比excel来说真的就再简略不过啦,这次小Mi全程就只更新装置了一个库,代码如下:

pip install python-docx

欧凯,那么这部分就曾经实现啦!(是不是超简略)

  1. 简略炫技
    这个时候小Mi很执拗,并不想走寻常路,只想用python编写一个word文件怎么办!小Mi通知你,仍旧很简略!

代码参考如下:

from docx import Document # 导入相干库

from docx.shared import Inches,Cm,Pt

from docx.document import Document as Doc

document = Document() # type: Doc

增加大题目(下面一行的正文也十分重要,否则无奈取得提醒)

document.add_heading('快来MindSpore昇思论坛~', 0)

增加段落

p = document.add_paragraph('MindSpore是由华为于2019年8月推出的新一代全场景AI计算框架,它')

run = p.add_run('开发敌对、运行高效、部署灵便!')

run.bold = True # 对run函数的内容进行加粗

run.font.size = Pt(26) # 设置字体的大小

增加图片

document.add_picture('banner.png', width=Cm(10.4))

增加分页符

document.add_page_break()

保存文档

运行成果:

3.高级炫技
太简略了!真的是没有任何难度,所以这不小Mi须要给大家表演一个魔术!

假如场景:

咱们常常是不是须要解决很多文件,这些文件是不是都很相似,那么是不是能够设计一个模板进去,在须要大量编写这些word文件的时候,几行代码轻松搞定!比方公司入职人员的信息统计。

首先设定一个简略的word模板:

而后十分傲慢地附上代码:

from docx import Document

from docx.document import Document as Doc

contracts = [

{    'company': 'A',    'number': '000451',    'start': '2020.1.6',},{    'company': 'B',    'number': '000452',    'start': '2021.6.4',},{    'company': 'C',    'number': '000453',    'start': '2021.10.9',},

]

for emp_dict in contracts:

doc = Document('信息统计.docx')  # type: Docfor p in doc.paragraphs:    if '{' not in p.text:        continue    for run in p.runs:        if '{' not in run.text:            continue        # 将占位符换成理论内容        start, end = run.text.find('{'), run.text.find('}')        key, place_holder = run.text[start + 1:end], run.text[start:end + 1]        run.text = run.text.replace(place_holder, emp_dict[key])doc.save(f'{emp_dict["company"]}信息统计.docx')

那么运行之后便能够见证奇观啦!

文件夹中多出了三个员工信息的word文件,真的是快捷而又高级!

4 附赠技能
当然啦,小Mi的word都只是简略的内容而已,大家能够在这个根底上一直地晋升!

比方如何增加各种题目:

Doc = Document()

Doc.add_heading("这是一级题目",level=1)

Doc.add_heading("这是二级题目",level=2)

Doc.add_heading("这是三级题目",level=3)

Doc.add_heading("这是四级题目",level=4)

Doc.save("题目.docx")
比方字体设置:

英文字体

run = doc1.add_paragraph('设置英文字体:').add_run('This Font is Times New Roman ')

run.font.name = 'Times New Roman'

中文字体

run = doc1.add_paragraph('设置中文字体:').add_run('字体为黑体')

run.font.name='黑体'

r = run._element

r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')

设置字体色彩

run = doc1.add_paragraph('这段为红色:').add_run('这里为红色')

run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00)
好啦,明天的炫技到底完结,这个系列下期给大家推出PDF相干内容!

不过须要揭示大家的是,代码外面有陷阱哦,第一个找进去的兄弟姐们间接送上咱们的纪念品!另外其余复现的盆友们留言抽20-30送!!!(留言模式“复现截图+邮箱+华为云ID”),加入的人越多咱们抽奖的人数就越多哦,dddd(懂得都懂!)

截止日期:2021.11.28

更多全面用法能够参考:https://docxtpl.readthedocs.i...